Boutons de déplacement [Résolu]

Signaler
Messages postés
65
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
15 octobre 2009
-
Messages postés
65
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
15 octobre 2009
-
bonjour,
j'ai un problème avec les boutons de déplacement dans un enregistrement. (exemple de bouton: Suivant, Précédent).

voici les codes:

Private Sub Suivant_Click()
On Error Resume Next
Dim rst As New ADODB.Recordset
rst.Open "agence", connectionStringBDD, , , adCmdTable
If rst.BOF And rst.EOF Then
   Exit Sub
End If
rst.MoveNext
If rst.EOF Then
   rst.MoveLast
End If
txtSociete.Text = rst!Code_societe
txtCode.Text = rst!Code_agence
txtLibelle.Text = rst!Libelle_agence
txtVille.Text = rst!Ville_agence
txtAdresse.Text = rst!Adresse_agence
rst.Update
rst.Close
End Sub

Private Sub Precedent_Click()
On Error Resume Next
Dim rst As New ADODB.Recordset
rst.Open "agence", connectionStringBDD, , , adCmdTable
If rst.BOF And rst.EOF Then
   Exit Sub
End If
rst.MovePrevious
If rst.BOF Then
   rst.MoveFirst
End If
txtSociete.Text = rst!Code_societe
txtCode.Text = rst!Code_agence
txtLibelle.Text = rst!Libelle_agence
txtVille.Text = rst!Ville_agence
txtAdresse.Text = rst!Adresse_agence
rst.Update
rst.Close
End Sub

aidez moi à répérer les erreurs dans ces codes svp.

ou bien, faites moi d'autres propositions si possible.

merci.

5 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
d'après ton code (sans vérifier), dans l'idée çà doit donner çà :

Option Explicit
Dim rst As New ADODB.Recordset

Private Sub Form_Load()
    On Error Resume Next
    rst.Open "agence", connectionStringBDD, , , adCmdTable
    If rst.BOF And rst.EOF Then
       Suivant.Enabled = False
       Precedent.Enabled = False
    Else
        rst.MoveFirst
    End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
    rst.Close
    Set rst = Nothing
End Sub

Private Sub Suivant_Click()
    rst.MoveNext
    If rst.EOF Then Suivant.Enabled = False
    txtSociete.Text = rst!Code_societe
    txtCode.Text = rst!Code_agence
    txtLibelle.Text = rst!Libelle_agence
    txtVille.Text = rst!Ville_agence
    txtAdresse.Text = rst!Adresse_agence
    rst.Update
    Precedent.Enabled = True
End Sub

Private Sub Precedent_Click()
    rst.MovePrevious
    If rst.BOF Then Precedent.Enabled = False
    txtSociete.Text = rst!Code_societe
    txtCode.Text = rst!Code_agence
    txtLibelle.Text = rst!Libelle_agence
    txtVille.Text = rst!Ville_agence
    txtAdresse.Text = rst!Adresse_agence
    rst.Update
    Suivant.Enabled = True
End Sub

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
salut,

tu dois faire précédent suivant sur un RS ouvert, tu ne le réouvres pas à chaque fois....

RS doit donc être dans les déclarations générales de ton formulaire

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Messages postés
65
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
15 octobre 2009

merci,
mais tu veux dire je ne dois plus faire "rst.open" au sein de la procédure?


il faut s'y prendre comment?


pour les déclarations générales , ça j'ai compris.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
43
... beh si tu sais qu'il faut déclarer en "gérérales", qu'il ne faut pas ré-ouvrir DANS tes précédent suivant, qu'il faut que le RS déclaré soit déjà ouvert au moment des click, c'est qu'il faut le mettre ailleurs et avant non?
pas beaucoup de choix...
au form_load par exemple, cette ouverture
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Messages postés
65
Date d'inscription
samedi 21 avril 2007
Statut
Membre
Dernière intervention
15 octobre 2009

Boujour,


juste pour dire merci à PCPT pour sa dernière réaction. mais il faut signaler que le RS doit être ouvert dans Form_Activate() et non Form_Load().


à ++