Ik heb een keuzelijst van 7 kolommen waarin "balken" van een productielijn in staan. Middels het klikken op een record in deze keuzelijst worden de rest van de formuliervelden ververst. Op de volgende manier:
Private Sub Balk_AfterUpdate()
' De record zoeken die overeenkomt met het besturingselement
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[BalkID] = " & Me![Balk] & ""
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
Voor zover alles prima. Nu heb ik een formulier gemaakt waarop enkele gegevens van een nieuwe balk ingevuld dienen te worden. Als ik dit formulier sluit middels een OK knop dan roep ik een gebeurtenis op (onder "bij klikken") met de volgende VBA-code:
Private Sub OK_Click()
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Forms![Hoofdmenu].Requery
Forms![Hoofdmenu].Refresh
Forms![Hoofdmenu]![Balk] = Me![BalkID]
DoCmd.GoToRecord , , acLast
DoCmd.Close
Exit_OK_Click:
Exit Sub
Err_Ok_Click:
MsgBox Err.Description
Resume Exit_OK_Click
End Sub
Wat hier wel goed bij gaat, is dat de nieuwe balk in de keuzelijst komt te staan en dat deze ook geselecteerd is. Wat hij niet doet, is alle andere velden op het formulier versersen zodat deze de waarden van deze nieuwe balk hebben. Hij moet als het ware de eerste code (Private Sub Balk_AfterUpdate()) nogmaals uitvoeren.
Iemand een idee? Let wel mijn vba-programmeer skills zijn waardeloos...tis een kwestie van trial and error bij mij.
Private Sub Balk_AfterUpdate()
' De record zoeken die overeenkomt met het besturingselement
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[BalkID] = " & Me![Balk] & ""
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
Voor zover alles prima. Nu heb ik een formulier gemaakt waarop enkele gegevens van een nieuwe balk ingevuld dienen te worden. Als ik dit formulier sluit middels een OK knop dan roep ik een gebeurtenis op (onder "bij klikken") met de volgende VBA-code:
Private Sub OK_Click()
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Forms![Hoofdmenu].Requery
Forms![Hoofdmenu].Refresh
Forms![Hoofdmenu]![Balk] = Me![BalkID]
DoCmd.GoToRecord , , acLast
DoCmd.Close
Exit_OK_Click:
Exit Sub
Err_Ok_Click:
MsgBox Err.Description
Resume Exit_OK_Click
End Sub
Wat hier wel goed bij gaat, is dat de nieuwe balk in de keuzelijst komt te staan en dat deze ook geselecteerd is. Wat hij niet doet, is alle andere velden op het formulier versersen zodat deze de waarden van deze nieuwe balk hebben. Hij moet als het ware de eerste code (Private Sub Balk_AfterUpdate()) nogmaals uitvoeren.
Iemand een idee? Let wel mijn vba-programmeer skills zijn waardeloos...tis een kwestie van trial and error bij mij.