Question RecordSet

Question RecordSet - VB/VBA/VBS - Programmation

Marsh Posté le 24-04-2008 à 17:40:45    

Bonjour,
 
 
J'ai quelques questions à propos des RecordSets :
 
1)  
 

Citation :

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
    TxtNumAbonné.Value = RS.Fields("NumAbonné" ).Value
    TxtNomAbonné.Value = RS.Fields("Nom" ).Value
     
    RS.Close
    Connection.Close
 
End Sub


 
 
Comment faire pour charger tous les enregistrements qui se trouvent dans ma table ABONNES ? Car dans mon code ci-dessus , je ne charge que le premier..
 
2)
 
J'ai créé 4 boutons de déplacements dans mon formulaire , quel code dois-je joindre à ces boutons? Par exemple le bouton "enregistrement suivant" , comment dois-je faire pour afficher dans les champs l'enregistrement suivant?  
 

Citation :

Private Sub CmdEnregSuivant_Click()
????????????????????????
End Sub


 
 
Merci d'avance.

Reply

Marsh Posté le 24-04-2008 à 17:40:45   

Reply

Marsh Posté le 24-04-2008 à 18:10:49    

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed