Faire défiler des enregistrements !

doomVB Messages postés 30 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 26 mai 2004 - 4 mai 2004 à 16:22
doomVB Messages postés 30 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 26 mai 2004 - 5 mai 2004 à 09:06
DoomVB

Je voudrais lier mes textbox aux champs de ma base de données pour voir la valeurs de ces champs. Je fais :


Textbox1.Text = rs.Fields(0).Value
Textbox2.Text = rs.Fields(1).Value
...
Quand je lance mon application, les champs st bien remplis avec les valeurs des champs du 1er enregistrement mais après, impossible de voir les autres enregistrements en appuyant sur la flèche de mon contrôle data.

Please help !!

D'jo

4 réponses

ultraxa Messages postés 127 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 21 janvier 2007
4 mai 2004 à 17:20
bon deja tu a crée un recordset (rs ), ce recordset a recuperer l'ensemble des données de la base suivant ta requete ,on est bien d'accord et bien si tu fait rs.movenext !! et ben tu avance ...tu as movelast, move ....
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
4 mai 2004 à 19:21
Ultraxa < Oui !! Il va faire défiler son recordset mais ne changera pas le contenu de ces textboxes !!!
Il faut que tu crée un "lien" entre tes textboxes et ton rs.
Au lieu de faire tes affectations :

Textbox1.Text = rs.Fields(0).Value
Textbox2.Text = rs.Fields(1).Value

Fait plutot ca :

Set Textbox1.DataSource = rs
TextBox1.DataField = rs.Field(0).name
Set Textbox2.DataSource = rs
TextBox2.DataField = rs.Field(1).Name

Dès que ton rs va bouger, tes champ vont se mettre a jour
ATTENTION ! Comme cela, si tu changes le texte d'un textbox et que tu bouges ton rs, jet risque de faire un update automatique de tes champs sous-jacents !!!!!!!
Si tu ne veux pas que cela se produise (simple consultation de la base), met la propriété Locked de tes textboxes à True

Christophe R.
0
ultraxa Messages postés 127 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 21 janvier 2007
4 mai 2004 à 22:15
oui c'est sur mais je voyais pas ça comme ça , j'aime pas trop ces types de controles , je prefere faire moi meme , genre je crée le bouton pour avancer ou pour reculer , je dis ça par experience qd tu est sur un projet qui travaille avec plein de controle et des liste qui affichent les recordset
0
doomVB Messages postés 30 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 26 mai 2004
5 mai 2004 à 09:06
DoomVB

Merci les gars pour l'aide !
J'ai essayé avec des boutons et ça marche mais quand je veux ajouter un enregistrement (avec : rs.AddNew ),
les champs ne se vident pas et je ne peux rien remplir !

Sinon j'ai essayé le conseil de crenaud76, mais j'ai un problème avec mon recordset qui me met "type incompatible"
pour la ligne "Set rs = ..." :

Dim DB As Database
Dim rs As Recordset
Set DB = OpenDatabase(Dialog1.CommonDialog1.FileName)

Set rs = DB.OpenRecordset("Select * From Client", dbOpenDynaset)

merci encore !!

A+
D'jo
0
Rejoignez-nous