Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2891 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Question RecordSet

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Question RecordSet

n°1723933
Trimm Trab
Posté le 24-04-2008 à 17:40:45  profilanswer
 

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.

mood
Publicité
Posté le 24-04-2008 à 17:40:45  profilanswer
 

n°1723957
olivthill
Posté le 24-04-2008 à 18:10:49  profilanswer
 

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.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Question RecordSet

 

Sujets relatifs
Petite question rapideQuestion de gros débutant
Question de design : WebServices et rétrocompatibilitéRequête SQL - Question plutôt simple :p
Menu dynamique en VBA pour Access 2003 par recordset[VBA] Petite question pour bouton sur Excel
question[Algo] Question d'ultra débutant
question sur l'héritage multiple[dumb girl asking] fermer des onglets et détruire des choses
Plus de sujets relatifs à : Question RecordSet


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR