Avatar billede mr.handstand Novice
31. august 2003 - 14:03 Der er 6 kommentarer og
1 løsning

Ustabil VB-kode i Access (Expression too complex) (XP-ver)

Hej,
Min VB-kode fejler meget mærkeligt.

Ved "Private Sub HovedComboKundenr_NotInList" på en form får jeg fejlen "Expression too complex", men linjen den markerer som fejlen er:

If FramePrimaryChoice.Value = 2 Then

Det er jo ikke fordi den er vildt kompliceret. Mouse-over i debug viser at den indeholder værdien "2", dvs 2=2.
Det er en mindre DB med funktionaliteten lagt i Forms, dels forms oprettet via design, og dels forms oprettet via wizard.

Men, hvad gør jeg for at få en "ensformig" afvikling af min VB-kode i Access 2002?
Avatar billede mugs Novice
31. august 2003 - 14:08 #1
Prøv denne og ændre tabel- og feltnavn:


Dim prompt As String
DoCmd.SetWarnings False
Response = acDataErrContinue
prompt = "Denne type findes ikke i listen, ønsker du at oprette den?"
If MsgBox(prompt, vbYesNo, "Typen findes ikke!") = vbYes Then
DoCmd.RunSQL "INSERT into Register (feltnavn) VALUES ('" & NewData & "')"
Response = acDataErrAdded
End If
DoCmd.SetWarnings True
Avatar billede terry Ekspert
31. august 2003 - 14:14 #2
what are you doing with this code in the NotInList event?

If FramePrimaryChoice.Value = 2 Then .....
Avatar billede mr.handstand Novice
31. august 2003 - 19:36 #3
Purpose of the form:
Input about customer hardware complaints.
Combobox lists customers by phonenumber (key). A phone number not in the list is the event that triggers a open of a AddCustomerForm, which is being populated with the "not-in-list" phone-number. After inserting the customer information, the form is closed and the combobox selected value is stored in a temp-value, the combobox calls an undo-method to clear the selected value, re-query to populate the combobox including the new customer, and selects this new customer as the selected value which is binding a sub-form.

But back to my question - howcome a " if Frame.value = 2 then... vb-code can be too complex?

And to Mugs: I am not interesting in asking a messagebox each time, the frame gives the answer to this one time for all. The frame holds 2 radio buttons describing the action taken after using the form.
Avatar billede mugs Novice
31. august 2003 - 20:20 #4
jeg forst¨år det sådan, at du arbejder med 2 formularer. Hvis det er tilfældet, kan du ikke bare referere til "If FramePrimaryChoice.Value = 2 Then", men er nødt til først at referere til objektsamlingen derefter til navnet på objektet og sidst til feltnavnet:

If [Forms]![AddCustomerform]![FramePrimaryChoice] = 2 Then
Avatar billede mr.handstand Novice
31. august 2003 - 20:34 #5
mugs: Tak for dit input, men jeg mener ikke det er nødvendigt at referere absolut, når det drejer sig om vb-kode, der er bundet direkte til en formular selv.
Koden der giver problemet er en kode-del, der ligger i samme formular som det objekt, hvis attribut jeg aflæser. Dermed kan jeg da godt prøve at kalde den med fx me.FramePrimaryChoice.value, men er der noget bud på, hvorfor dette skulle virke i forhold til fejlbeskrivelsen - for koden har virket uden problemer tidligere - det er jo netop derfor jeg benævner spørgsmålet: ustabil kode. jeg vil meget gerne forstå hvad det er der går galt for mig, for at undgå det fremover.
Avatar billede mr.handstand Novice
25. september 2003 - 16:16 #6
jeg lukker spørgsmålet - tak for input mugs, men jeg har ikke rigtig fået svar på problemerne om den ustabile kode.
Avatar billede mr.handstand Novice
25. september 2003 - 16:16 #7
Ikke noget svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester