Set rstVare = mydb.OpenRecordset("SELECT * FROM [T_Varer]") rstVare.MoveLast Antalvarer = rstVare.RecordCount rstVare.MoveFirst
For x = 1 To Antalvarer rstVare.Edit rstVare!DispBehold = rstVare!Beholdning rstVare.Update rstVare.MoveNext Next
'Nu skal indkøbsordrer, Produktionsordrer og salgsordrer gennemløbes Set rstIKlin = mydb.OpenRecordset("SELECT * FROM [T_IKOrdrespec] WHERE [IkLinStatus] < 2")
For x = 1 To AntalIKlin Set rstVare = mydb.OpenRecordset("SELECT * FROM [T_Varer] WHERE [Varenr]= '" & rstIKlin!Varenr & "'") rstVare.Edit rstVare!DispBehold = rstVare!DispBehold + (rstIKlin!Antalbestilt - rstIKlin!Antalleveret) rstVare.Update rstIKlin.MoveNext Next x
suggestion: have a string variable which you use to hold the contents of the SQL. Then its easier to copy the SQL to a query wher you can better see the problem.
EG: dim sSQL as string
sSQL = "SELECT * FROM [T_Varer] WHERE [Varenr]= '" & rstIKlin!Varenr & "'"
then alter
Set rstVare = mydb.OpenRecordset(ssQL)
now you can place a break point on this line to stop the program when it reaches the break point
Now in the Immediate window (CTRL+G) you can see the contents of sSQL by writing
?sSQL
followed by enter Now you can copy this SQL into a query wher hopefully you will see what the problem is
Uden helt at kende omfanget af nødvendigheden deraf, ville jeg tilføje: rstVare.Close
som 3. sidste linie
Ved ikke om det løser problemmet --------- Jeg kan ikke lade være med at kommentere - elsker at fremture i kunsten at kode ;-)
I stedet for at loope igennem recordset med postantal tæller:
with CurrentDb.OpenRecordset(.... while not .eof 'operations .MoveNext:Wend: End With
Unnamed variables er som sendt fra himmelen for at undgå tilsmudse med unødvendige variabel navne, brug for guds skyld ikke:
set unnessesaryvariabledetails=... with unnessesaryvariabledetails
Når man så ad åre, for 100 gang, tvinges til at debugge fordi man har glemt et MoveNext - så laver man en klasse og tilhørende public funktion til at returne et object - og det bliver dermed til, idet eof nu er et wrap omkring det indkapslede dao recordsets eof:
with rsi(.... 'recordset iterator while not .eof 'operations Wend: End With ---------
sql er lavet til at klare selv væsentligt mere komplekse opdateringer, dog ingen granti herfra ;-)
CurrentDb.execute "update T_Vare set DispBehold = Beholdning + (select AntalBestilt-AntalLeveret from T_IKOrdrespec WHERE IkLinStatus < 2 and varenr=T_Vare.vareNr)"
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.