Avatar billede region Nybegynder
16. august 2001 - 20:43 Der er 5 kommentarer og
1 løsning

Please help...!!!! combo i access med VBA

jeg kører nedenstående script I Accees 97 men får en fejl :


CurrentDb.QueryDefs(\"qvis-1\").SQL = \"SELECT * from [qvis] WHERE [avance %]\" & Me!Combo16 And [kundenr]\" & Me!Combo18

scriptet virkede indtil jeg indsatte :

And [kundenr]\" & Me!Combo18

jeg har også prøvet :

CurrentDb.QueryDefs(\"qvis-1\").SQL = \"SELECT * from [qvis] WHERE [avance %]\" & Me!Combo16 And [kundenr]= \" & Me!Combo18

men får da at vide at feltet [kundenr] ikke findes, hvilket jeg ved det gør.

hvis jeg bytter om på scriptet er det bare [avance %] den ikke kan finde...

ergo er det ikke feltnavnene


Please help…..!!!!!!!! jeg er novice indenfor VBA
Avatar billede jespernaur Nybegynder
16. august 2001 - 21:00 #1
Det ser for mig ud som om du har kludder i antallet af anførselstegn, prøv noget i retning af

CurrentDb.QueryDefs(\"qvis-1\").SQL = \"SELECT * from [qvis] WHERE [avance %]\" & Me!Combo16 & \" And [kundenr] \" & Me!Combo18

eller evt

CurrentDb.QueryDefs(\"qvis-1\").SQL = \"SELECT * from [qvis] WHERE [avance %]\" & Me!Combo16 & \" And [kundenr] = \" & Me!Combo18

Avatar billede region Nybegynder
16. august 2001 - 21:07 #2
I begge tilfælde kommer den med en syntax fejl :

syntax error ( missing operator) in query expression \'[avance %]is not null And [kundenr]=01*\'.

Dette skla ses ud fra at avance er sat til \"is not null\" og kundenr er sat til \"01*\" i mine combobokse

andre ideer...
Avatar billede region Nybegynder
16. august 2001 - 21:27 #3
CurrentDb.QueryDefs(\"qvis-1\").SQL = \"SELECT * from [qvis] WHERE [avance %]\" & Me!Combo16 & \" And [kundenr] = \" & Me!Combo18

vil virke såfremt mit felt kundenr er numerisk men det er det ikke fordi jeg da ikke kan brige wildcards.
Avatar billede jespernaur Nybegynder
16. august 2001 - 22:03 #4
Et par ideer: Jeg antager, at du selv er klar over, hvordan din SQL query-streng
burde se ud. Jeg kan anbefale, at du bygger den op i en temporær variabel, som
du kan vise på skærmen med MsgBox før du går i databasen. Herved kan du kontrollere,
at forespørgslen er opbygget korrekt. Noget i retning af:

Dim strTmp as String

strTmp = \"SELECT * from [qvis] WHERE [avance %]\" & Me!Combo16 & \" And [kundenr] = \" & Me!Combo18

MsgBox strTmp

CurrentDb.QueryDefs(\"qvis-1\").SQL = strTmp

Nu er jeg klar over, at dette eksempel er et af dem, der ikke vil virke. Det tjener
dog til at illustrere teknikken, og en af de ting, du skal være særlig opmærksom på, er
om SELECT-kommandoen i sig selv skal indeholde anførselstegn. Eftersom en tekststreng
starter og slutter med anførselstegn, skal man skrive to anførselstegn for at få
et anførselstegn inkluderet i tekststrengen. Eksempel:

MsgBox \"Nu kommer et anførselstegn: \"\" (tekst efter anførselstegnet)\"

Mvh
Jesper Naur
Avatar billede region Nybegynder
16. august 2001 - 22:47 #5
Det er ikke noget der skal vises ved start eller lign idet brugeren kun skla vælge ud fra en formular med de omtalte kombobokse.

Jeg troede egentlig det var rimeligt simpelt at tilføje en AND i et sql script også når dette blev kørt fra VBA,men åbenbart ikke.
Ideen med at jeg vil køre det fra VBA er desuden at man der kan få access til at acceptere wildcards som < > <> = osv. hvis jeg lavede tilsvarende i en udtryksgenerator ville dette ikke fungere.

JEg beklager at måtte afvise dig igen, men jeg har desværre ikke fået løst problemet. måske kunne du fortælle hvor de extra \"\" skulle anføres i scriptet for at agere textstreng
Avatar billede region Nybegynder
16. august 2001 - 23:36 #6
Har selv løst det  som følger :

CurrentDb.QueryDefs(\"qvis-1\").SQL = \"SELECT * from [qvis] WHERE [avance %]\" & Me!Combo16 & \" And [kundenr] like Combo18\"
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
Kurser inden for grundlæggende programmering

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