DoCmd.GoToRecord acForm, "DIN FORM", acFirst
Do Until Me.NewRecord = True
Me.chkFiltre = True
DoCmd.RunSQL "UPDATE tblFiler_bestilles Set ServiceID =" & Me.ServiceID
Loop
Vi skal da have en "gå til næste post" med:
DoCmd.GoToRecord acForm, "DIN FORM", acFirst
Do Until Me.NewRecord = True
Me.chkFiltre = True
DoCmd.RunSQL "UPDATE tblFiler_bestilles Set ServiceID =" & Me.ServiceID
DoCmd.GoToRecord acForm, "DIN FORM", acNext
Loop
Hej Mogens
Det virker ikke helt. i tblFilter_bestilles er der kun eet felt - nemlig feltet med Service_ID.
Det betyder, jeg skal indsætte en post med service_ID, hvis jeg sætter chkFiltre = true og hvis jeg vælger at slette skal posterne i tblFilter_bestilles slettes!
Jeg har tilrettet til dette, men den spørger om jeg vil opdatere en post og derefter løber den i en uendelig løkke, hvis jeg svarer ja.
Det skal lige siges, at jegh har placeret koden på en ubundet ja/felt ved navn Afkrydsningsfelt517
DoCmd.GoToRecord acForm, "frmBestilling_filtre", acFirst
Do Until Me.NewRecord = True
Me.chkFiltre = True
DoCmd.RunSQL "update tblFilter_bestilles Set Service_ID =" & Me.txtService_ID
Loop
Det virker heller ikke.
Den sætter heller ikke poster ind i tblFilter_bestilles
Den uendelige løkke skyldes, at du ikke får fomrmularen til at gå til næste post.
Spørgamålet om du vil opdatere kan vi komme udenom, ved at indsætte en false til Warnings.
Docmd.SetWarnings False
DoCmd.GoToRecord acForm, "frmBestilling_filtre", acFirst
Do Until Me.NewRecord = True
Me.chkFiltre = True
DoCmd.RunSQL "update tblFilter_bestilles Set Service_ID =" & Me.txtService_ID
DoCmd.GoToRecord acForm, "DIN FORM", acNext
Loop
Docmd.SetWarnings True
Huskm altid at sætte warnings til true igen, ellers forbliver de frakoblede i hele applikationen.
Prøv evt. at indsætte koden i en kommandoknap.
Hej igen
Jeg får en fejl, når koden når til sidste post 'Error 2046' - kommandoen eller handlingen "GåTilPost" er ikke tilgængelig nu!
Det er vel noget med, der skal en errorhandler ind, der afslutter, når man når til sidste post.
Har i øvrigt ændret lidt i SQL, så den hedder:
DoCmd.RunSQL "INSERT INTO tblFilter_bestilles(Service_ID) VALUES('" & Me.txtService_ID & "');"
Den virker nu.
Kan du lave errorhandleren?
Tak for hjælpen Mugs
Fik selv lavet det, så det nu virker:
On Error GoTo Errorhandler
DoCmd.SetWarnings False
DoCmd.GoToRecord acForm, "frmBestilling_filtre", acFirst
Do Until Me.NewRecord = True
Me.chkFiltre = True
DoCmd.RunSQL "INSERT INTO tblFilter_bestilles(Service_ID) VALUES('" & Me.txtService_ID & "');"
DoCmd.GoToRecord acForm, "frmBestilling_filtre", acNext
Loop
DoCmd.SetWarnings True
Errorhandler:
If Err.Number = 2046 Then
MsgBox "Handlingen udført"
Exit Sub
End If
Hvornår opstår fejlen?
Vi har jo lavet en betingelse:
Do Until Me.NewRecord = True
at den kun skal udføre løkken indtil NewRecord er = True.
Men prøv denne:
Docmd.SetWarnings False
DoCmd.GoToRecord acForm, "frmBestilling_filtre", acFirst
On error GoTo errorhandler
Do Until Me.NewRecord = True
Me.chkFiltre = True
DoCmd.RunSQL "INSERT INTO tblFilter_bestilles(Service_ID) VALUES('" & Me.txtService_ID & "');"DoCmd.GoToRecord acForm, "DIN FORM", acNext
Loop
Docmd.SetWarnings True
Errorhandler:
If err.Number = 2046
Then Exit Sub
End If