Bonjour,
Une petite procédure permettant de travailler avec la propriété Bookmark et le recordsetclone d'un formulaire afin de se positionner sur la bonne ligne en fonction de la valeur d'un champ (clé de préférence):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Sub Positionne(MonForm As Form, ControlName As String, ValeurRech, TypeValeur As Integer)
On Error Resume Next
Dim MonClone As Recordset
Dim Crits As String
Set MonClone = MonForm.RecordsetClone
Crits = "[" & ControlName & "]="
Select Case TypeValeur
Case vbString
Crits = Crits & "'" & ValeurRech & "'"
Case vbDate
Crits = Crits & "#" & Format(ValeurRech, "mm/dd/yyyy") & "#"
Case vbLong
Crits = Crits & ValeurRech
End Select
MonClone.FindFirst Crits
MonForm.BookMark = MonClone.BookMark
MonClone.Close
End Sub |
A utiliser de la manière suivante :
Positionne me,"MaClé", ValeurRecherche, vbLong
Pour un sous formulaire avant un Requery, o peux donc sauvegardé la clé de la ligne sur laquelle nous nous trouvons, faire le Requery et ensuite se repositionner au bon endroit au lieu de se retrouver sur le 1er enregistrement.
Positionne [SousForm].Form,"MaClé", ValeurSauvee, vbLong
Partager