VBA Access Dao Recordset Bookmark wijst verkeerde record aan
Het schakelen tussen twee formulieren Werkorder en Verzamelstaat werkt. In principe worden in beide formulieren de gegevens van de record met hetzelfde ID nummer getoond. Toch is er iets merkwaardigs. Als ik een werkorder formulier met een willekeurige ID selecteer en schakel naar de Verzamelstaat, dan gaat het goed. De Verzamelstaat met hetzelfde ID nummer wordt getoond. Selecteer ik in de Werkorder het formulier met het hoogste ID, laatste record van de tabel Opdrachten (ID=1213), dan wordt Verzamelstaat met nummer 1 (ID=1) weergegeven. Dit is niet goed, het moet het hoogste ID nummer hebben.
In de code heb ik op drie plaatsen een Msgbox geplaatst om de ID nummers te controleren.
Code:
Private Sub Form_Load()
Dim RecordNum As Integer
Dim strCriteria As String
Dim rsClone As DAO.Recordset
'Routine Bepaalt record huidige werkordernummer
RecordNum = TempVars![sIDnummer] 'Haal uit form Werkorders het actuele werknummer
Set rsClone = Me.RecordsetClone
rsClone.MoveFirst
MsgBox "Huidige positie: " & rsClone.AbsolutePosition 'Box 1
strCriteria = "[o_Opdracht ID]=" & RecordNum
MsgBox strCriteria 'Box 2
rsClone.FindFirst strCriteria.
Me.Bookmark = rsClone.Bookmark
MsgBox "Huidige positie: " & rsClone.AbsolutePosition 'Box 3
Forms![Verzamelstaat PvO].Bookmark = rsClone.Bookmark
Forms![Verzamelstaat PvO].Form.Refresh
rsClone.Close
End Sub
Resultaten:
Bij het selecteren van een willekeurige werkorder = Box 1 - 0, Box 2 - [
pdracht ID]=1210 (willekeurig formulier met ID=1210 en is goed), Box 3 - 1175 (Dit is
altijd 1175 en niet goed)
Bij het selecteren van het laatste werkorder formulier = Box 1 - 0, Box 2 - [
pdracht ID]=1213 (hoogste ID en is goed), Box 3 - 0.
Mogelijk gebruik ik AbsolutePosition verkeerd en kun je een record aanwijzen ipv. de positie opvragen.
Waarom wordt
altijd in Box 3 ID=1175 weergegeven? Ook als ik de database herstart. Waarom wordt bij de hoogste ID van de tabel in Box 3 de waarde 0 gegeven en het eerste formulier getoond?