1. Pour faire une boucle sur tous les enregistrements :
Private Sub Form_Load() Dim RS As New ADODB.Recordset Dim Connection As New ADODB.Connection Dim sql As String
sql = "SELECT NumAbonné , Nom FROM ABONNES"
Set Connection = CurrentProject.Connection Call RS.Open(sql, Connection, adOpenDynamic, adLockOptimistic)
RS.MoveFirst ' pas obligatoire car on est sur le premier par défaut
Do While (Not RS.EOF)
TxtNumAbonné.Value = RS.Fields("NumAbonné" ).Value TxtNomAbonné.Value = RS.Fields("Nom" ).Value RS.MoveNext
Loop
RS.Close Connection.Close
End Sub |
2. Ce n'est pas facile, sauf si la clef des enregistrements est un numéro séquentiel que l'on gère soi-même (pas un numéro automatique car il peut y avoir des trous dans la séquence automatique). Auquel cas, on fait un select avec numéro + 1 pour passer au suivant ou numéro - 1 pour passer au précédent. Sinon, il faut s'amuser avec les min et les max, ou bien charger en mémoire dans un tableau et afficher chaque ligne du tableau. Ou bien, il faut utiliser un datasource et laisser Access gérer les changements d'enregistrement.