Bug sur la commande SearchForRecord
SearchForRecord est une nouvelle commande Access 2007 utilisée principalement sur l’événement AfterUpdate des listes modifiables pour se positionner sur un enregistrement dont la clé primaire est égale à la valeur sélectionnée dans la liste.
La commande générée par l’assistant est la suivante (exemple) :
DoCmd.SearchForRecord , "", acFirst, "[FTP_T_KEY] = " & "'" & Screen.ActiveControl & "'"
Si l’option de recherche est acFirst et que l’enregistrement trouvé soit le premier de la table ou le premier du Recordset, l’événement Form_Current n’est pas déclenché. Pour tous les autres enregistrements, l’événement Form_Current est déclenché correctement.
Contournement du bug : corriger la procédure.
Procédure générée :
Private Sub cmdSearch_AfterUpdate()
DoCmd.SearchForRecord , "", acFirst, "[FTP_T_KEY] = " & "'" & Screen.ActiveControl & "'"
End Sub
DoCmd.SearchForRecord , "", acFirst, "[FTP_T_KEY] = " & "'" & Screen.ActiveControl & "'"
End Sub
Corriger en :
Private Sub cmdSearch_AfterUpdate()
Dim rs As Object
Set rs = Me.RecordsetClone
rs.FindFirst "[FTP_T_KEY] = " & "'" & Screen.ActiveControl & "'"
If Not rs.NoMatch Then Me.Bookmark = rs.Bookmark
End Sub
Dim rs As Object
Set rs = Me.RecordsetClone
rs.FindFirst "[FTP_T_KEY] = " & "'" & Screen.ActiveControl & "'"
If Not rs.NoMatch Then Me.Bookmark = rs.Bookmark
End Sub
Ou alors :
Private Sub cmdSearch_AfterUpdate()
Dim rs As DAO.Recordset
Set rs = Me.RecordsetClone
rs.FindFirst "[FTP_T_KEY] = " & "'" & Screen.ActiveControl & "'"
If Not rs.NoMatch Then Me.Bookmark = rs.Bookmark
End Sub
Dim rs As DAO.Recordset
Set rs = Me.RecordsetClone
rs.FindFirst "[FTP_T_KEY] = " & "'" & Screen.ActiveControl & "'"
If Not rs.NoMatch Then Me.Bookmark = rs.Bookmark
End Sub
Prendre la précaution de cocher la référence à DAO 3.6