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----------------------------------
Annonceindlæg fra SuperOffice
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
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
15. april 2002 - 10:26
#5
sql = "SELECT * FROM [vare/auktion] WHERE Aktionsnummer = " & me.aktionummer & " and varenummer = " & me.varenummer
15. april 2002 - 10:29
#6
sql virker ikke , "der er en syntaksfejl i from -sætningen
15. april 2002 - 10:32
#7
Det er din / i tabel-navnet... brug [] omkring !!!
15. april 2002 - 10:33
#8
15/04-2002 10:26:36
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
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!
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)
15. april 2002 - 10:45
#15
I too agree with proaccess's answer!
15. april 2002 - 10:56
#16
gider ikke have så mange forsprøgelser ...
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.
15. april 2002 - 10:59
#18
??? Du skriver mine 2 linier i din kode I STEDET FOR dine 12 linier...
15. april 2002 - 11:01
#19
ok proaccess det kan jeg se det er lidt nemmere :-) sorry , misforstod dit indlæg.
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 ???
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser