Avatar billede juks Novice
15. april 2002 - 10:18 Der er 19 kommentarer og
1 løsning

sql med to kriterie

HEj !
hvordan får jeg det her til at virke?

----------------------
Dim db As Database
Dim rec As DAO.Recordset
Dim sql As String


    sql = "SELECT * FROM vare/auktion WHERE Aktionsnummer = me.aktionummer and  varenummer = me.varenummer "

    Set db = CurrentDb()
    Set rec = db.OpenRecordset(sql, dbOpenDynaset)
    Do
    rec.Edit
    rec.Fields("katnr") = Me.katnr
    rec.Update
    Exit Do
    Loop

End Sub----------------------------------
15. april 2002 - 10:22 #1
Hvis begge felter er nummeriske:

Dim db As Database
Dim rec As DAO.Recordset
Dim sql As String


    sql = "SELECT * FROM vare/auktion WHERE Aktionsnummer = " & me.aktionummer & " and  varenummer = " & me.varenummer

    Set db = CurrentDb()
    Set rec = db.OpenRecordset(sql, dbOpenDynaset)
    Do
    rec.Edit
    rec.Fields("katnr") = Me.katnr
    rec.Update
    Exit Do
    Loop

End Sub
15. april 2002 - 10:22 #2
Hvis felterne er af datatypen tekst:

sql = "SELECT * FROM vare/auktion WHERE Aktionsnummer = '" & me.aktionummer & "' and  varenummer = '" & me.varenummer & "'"
15. april 2002 - 10:25 #3
øhh...hvorfor har du en Do-Loop, når du Exit'er allerede efter første gennemløb??
Det bør vel se sådan ud:

sql = "SELECT * FROM vare/auktion WHERE Aktionsnummer = " & me.aktionummer & " and  varenummer = " & me.varenummer

    Set db = CurrentDb()
    Set rec = db.OpenRecordset(sql, dbOpenDynaset)
    Do until rec.EOF
      rec.Edit
      rec!katnr = Me!katnr
      rec.Update
      rec.movenext
    Loop
Avatar billede proaccess Nybegynder
15. april 2002 - 10:25 #4
Du kan med fordel bruge en opdateringsforespørgsel...

Set db = CurrentDb()
db.Execute "UPDATE [vare/auktion] SET katnr=" & me.katnr & " WHERE Aktionsnummer = " & me.aktionummer & " and  varenummer = " & me.varenummer
Avatar billede terry Ekspert
15. april 2002 - 10:26 #5
sql = "SELECT * FROM [vare/auktion] WHERE Aktionsnummer = " & me.aktionummer & " and  varenummer = " & me.varenummer
Avatar billede juks Novice
15. april 2002 - 10:29 #6
sql virker ikke , "der er en syntaksfejl i from -sætningen
Avatar billede proaccess Nybegynder
15. april 2002 - 10:32 #7
Det er din / i tabel-navnet...  brug [] omkring !!!
Avatar billede terry Ekspert
15. april 2002 - 10:33 #8
15/04-2002 10:26:36
Avatar billede juks Novice
15. april 2002 - 10:33 #9
hvis jeg bruger denne her .....æ
sql = "SELECT * FROM [vare/auktion] WHERE Aktionsnummer = " & Me.Aktionsnummer & " and  varenummer = " & Me.varenummer
-----
er argumentet ugyldigt
Avatar billede juks Novice
15. april 2002 - 10:35 #10
tak terry det virkede ..... you r the man again ..........
15. april 2002 - 10:37 #11
undskyld, men er Terry's svar ikke præcist det samme, som jeg skrev 10:25:13??
15. april 2002 - 10:38 #12
okay, jeg kan se at [] er til forskel!
Avatar billede proaccess Nybegynder
15. april 2002 - 10:39 #13
>Juks: Hvorfor bruger du DO-LOOP på den måde ???
15. april 2002 - 10:41 #14
Proaccess har ret: hans svar 10:25:43 er klart det optimale. Der er slet ingen grund til at åbne recordsets m.m. (og slet ikke lave loop, hvis der kun er én post, som matcher)
Avatar billede terry Ekspert
15. april 2002 - 10:45 #15
I too agree with proaccess's answer!
Avatar billede juks Novice
15. april 2002 - 10:56 #16
gider ikke have så mange forsprøgelser ...
Avatar billede juks Novice
15. april 2002 - 10:58 #17
jamen det kan også ikke være nogen der matcher og det er lidt nemmer at lave fejl-behandling i vba end i en forspg.
Avatar billede proaccess Nybegynder
15. april 2002 - 10:59 #18
???  Du skriver mine 2 linier i din kode I STEDET FOR dine 12 linier...
Avatar billede juks Novice
15. april 2002 - 11:01 #19
ok proaccess det kan jeg se det er lidt nemmere :-) sorry , misforstod dit indlæg.
Avatar billede proaccess Nybegynder
15. april 2002 - 11:02 #20
Hvis du laver en UPDATE i sql, hvor der ingen poster er, som opfylder kriteriet, så bliver ingen poster opdatéret, og så er der ingen ulykke sket ved det !!!  - ERGO: Ingen fejlhåndtering!

Din kodes opbygning:

DO

EXIT DO
LOOP

Undrer mig også en del, hvorfor har du de 3 linier med ???
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