Avatar billede jkrons Professor
13. marts 2002 - 13:19 Der er 14 kommentarer og
2 løsninger

Problem med SQL sætning

Jeg afvikler følgende kode fra en knap i en underformular

DoCmd.RunSQL "INSERT INTO tblTest (deltagerId, spørgsmålsid, svar) " & _
"Values (forms!frmtest!deltagerID, forms!frmtest!frmtestdel!spørgsmålid, forms!frmtest!frmtestdel!svar)"

Som det ses skal det første felt, der indsættes tages fra et felt i hovedformularen (frmTest). De to næste skal tages fra felter i underformularen (frmTestdel). Jeg kan ikke rigtigt få syntaksen til at virke for de to sidstnævnte felter. Jeg har også prøvet med forms!frmtest!forms!frmtestdel!svar

og forskellige andre, men altsammen uden succes. PS Selve knappen findes i underformularen.
Avatar billede moses Praktikant
13. marts 2002 - 13:23 #1
Det nemmeste er, at du bruger Wizard'en til at danne udtrykkene med forms....
Det er den knap med tryllestaven.
Avatar billede terry Ekspert
13. marts 2002 - 13:27 #2
DIM sSQL as string

sSQL = "INSERT INTO tblTest (deltagerId, spørgsmålsid, svar) "
sSQL = sSQL & "Values (" & forms!frmtest!deltagerID & "," & forms!frmtest!frmtestdel!spørgsmålid & ",'" & forms!frmtest!frmtestdel!svar & "')"

DoCmd.RunSQL sSQL

Not sure if its right but it should give you an idea!
Avatar billede jkrons Professor
13. marts 2002 - 13:29 #3
moses> Jeg har ligesom ikke nogen wizard til rådighed i VBA editoren - i så fald har jeg i hvert fald aldrig hørt om den.
Avatar billede moses Praktikant
13. marts 2002 - 13:32 #4
DoCmd.RunSQL "INSERT INTO tblTest (deltagerId, spørgsmålsid, svar) " & _
"Values (forms("frmtest")!deltagerID, forms("frmtest")!frmtestdel!spørgsmålid, forms("frmtest")!frmtestdel!svar)"
Avatar billede moses Praktikant
13. marts 2002 - 13:33 #5
Jeg tænkte også på Queries, men fandt ud af, at du mente VBA enviroment.
Derfor også ovenstående forslag
Avatar billede jkrons Professor
13. marts 2002 - 13:35 #6
Unfortunately it gives me excatly the same problem asd my own code. The error message "Microsoft Access can't find the field 'frmtestdel' referred to in the expression". MY own translation.
Avatar billede moses Praktikant
13. marts 2002 - 13:36 #7
Og så lige en retelse til alle dine ping'er:

DoCmd.RunSQL "INSERT INTO tblTest (deltagerId, spørgsmålsid, svar) " & _
"Values " & (forms("frmtest")!deltagerID & ", " & forms("frmtest")!frmtestdel!spørgsmålid & ", " & forms("frmtest")!frmtestdel!svar)
Avatar billede moses Praktikant
13. marts 2002 - 13:37 #8
Den fejl du får er helt korrekt.

Når du skriver

forms!frmtest

Så leder den efter en cotrol på selve formen !!
Avatar billede jkrons Professor
13. marts 2002 - 13:43 #9
moses> desværre. Den vil ikke kendes ved dine parentser i SQL udtrykket. Jeg har også afprøvet din kode i andre vasrianter men uden held.
Avatar billede jkrons Professor
13. marts 2002 - 13:45 #10
moses> Men hvordan får jeg den til at lede efter en control i underformularen. Det er præcis det, der er mit problem. Findes der en syntaks, som gør det, eller er det simpelhen ikke muligt.
Avatar billede moses Praktikant
13. marts 2002 - 13:48 #11
Vi prøver lige igen:

DoCmd.RunSQL "INSERT INTO tblTest (deltagerId, spørgsmålsid, svar) " & _
"Values (" & forms("frmtest")!deltagerID & ", " & forms("frmtest")!frmtestdel!spørgsmålid & ", " & forms("frmtest")!frmtestdel!svar & ")"

Så skulle det være der.
Denne her giver ingen fejl hos mig.
13. marts 2002 - 13:48 #12
Det er altså ikke så svært! Når du referere til felter på en undeformular er syntaksen:
Forms![Formnavn]![Navn på underformularobjekt]![Kontrolobjekt på underformular]

Det, der ofte er problemet, er at du skal bruge navnet på underformular-objektet. Det er ikke nødvendigvis det samme som selve formularen.

Åbn hovedformularen i design, klik én og kun én gang på underformularen og aflæs navnet i egenskaberne. Det er det navn, som skal bruges i udtrykket.

/Thomas
Avatar billede moses Praktikant
13. marts 2002 - 13:49 #13
Igen igen
13. marts 2002 - 13:49 #14
Det gør ingen forskel om man bruge syntaksen med parenteser eller den anden.
Avatar billede jkrons Professor
13. marts 2002 - 14:09 #15
Jeg kan desværre stadig ikke få jeres foralg til at virke, men ved at lave to ubundne felter i hovedformularen, som jeg lader refere til felterne i underformularen og så bruger disse i koden i stedet, virker det. De to felter har jeg så gjort usynlige.

Point til jer begge for inspirationen. Tords alt!
Avatar billede moses Praktikant
13. marts 2002 - 14:15 #16
Tak alligevel.
Men det burde altså virke.

Er du sikker på, at du har benyttet navnet på subform objektet, som ligger inde i hovedformen ?!?!
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