Bouton de Navigation: Précedent et Suivant

YPMN Messages postés 98 Date d'inscription vendredi 4 juin 2004 Statut Membre Dernière intervention 20 août 2012 - 25 juin 2006 à 03:57
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 - 18 sept. 2006 à 23:28
Dim VBDSelect as Adodb.Connection 'dans la partie déclaration
Dim VTabSelect as Adodb.Recordset 'dans la partie declaration

Salut!

A l'evennement Click d'un bouton nommé PRECEDENT, je place le code ci-après afin de pouvoir naviguer vers les enregistrements précedent de ma base des données... mais c'est la pagaille! Je suis sûr ety certain que je suis entrain de manquer quelque chose...

Aider-moi s'il vous plait à le dénicher:

Dim VBDSelect as Adodb.Connection 'dans la partie declaration
Dim VTabSelect as Adodb.Recordset 'dans la partie declaration

Private Sub Suivant_Click() 'à l'évennement clic d'un bouton de commande

Dim VRequete as String

Set VBDSelect=New Adodb.Connection
Set VTabSelect=New Adodb.Recordset

VBDSelect.Provider="Microsoft.Jet.Oledb.4.0"
VBDSelect.ConnectionString=App.Path & "\MaDB.Mdb"
VBDSelect.Open

VRequete="Select*From MaTable Order by ChampIndex"
VTabSelect.Open vRequete, VBDSelect, AdOpenDynamic, AdOptimistic

VTabSelect.MovePrevious
Text1.Text=VTabSelect!ChampIndex
Text2.Text=VTabSelect!ChampNom

et j'en passe...

Résultat: Je ne parviens paqs à remonter normallement mes enregistrement; pourquoi donc, svp ?

1 réponse

rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
18 sept. 2006 à 23:28
Salut 288172 YPMN,

je sais, j'arrive tard, c'est normal.

D'abord, le principe :
Ton formulaire ouvre une connexion et un recordset en démarrant, et les ferme lorsqu'il disparait. Pendant qu'il est ouvert, des boutons de commandes te permettent de naviguer à travers les réponses. Simple, non?

Ensuite le problème :
Tu déclares des variables dans la partie Déclarations de ton formulaire, et elles ont donc une durée de vie égale à celle du formulaire. C'est très noble, et c'est ce qu'il faut.
Par contre, tu n'ouvre la connexion et le recordset que lorsqu'on clique le bouton e navigation! Là, ça ne colle pas avec ce qu'on a dit :lorsque le formulaire s'ouvre, il les ouvre, lorsqu'il se ferme, il les ferme.

Enfin la solution :
Private Sub Form_Load()
Dim VRequete As String

   Set VBDSelect =New Adodb.Connection
   Set VTabSelect=New Adodb.Recordset

   VBDSelect.Provider="Microsoft.Jet.Oledb.4.0"
   VBDSelect.ConnectionString=App.Path & "\MaDB.Mdb"
   VBDSelect.Open

   VRequete="Select*From MaTable Order by ChampIndex"
   VTabSelect.Open vRequete, VBDSelect, AdOpenDynamic, AdOptimistic
End Sub

Private Sub Form_Unload()
   VTabSelect.Close
   Set VTabSelect = Nothing
   VBDSelect.Close
   Set VBDSelect = Nothing
End Sub

et le bouton Suivant (par exemple):

Private Sub Suivant_Click() 
   VTabSelect.MoveNext
   Text1.Text=VTabSelect!ChampIndex
   Text2.Text=VTabSelect!ChampNom
End Sub

Voilà, tu n'étais pas si loin!
à+

PS : n'oublies pas, "n'est ignorant que celui qui le sait, n'est savant que celui qui l'ignore!"

rvblog<sup>n
Je veux ton bien....mieux vaut tard que trop tard</sup>
0
Rejoignez-nous