31. august 2003 - 14:03Der 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?
Efter ti år i London, Madrid, Paris og Utrecht kommer Sabios AI-fokuserede program af arrangementer om kundeoplevelser, ‘Disrupt’, for første gang til Danmark.
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
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.
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
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.
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.