Movenext [Résolu]

Signaler
Messages postés
44
Date d'inscription
jeudi 9 juin 2005
Statut
Membre
Dernière intervention
29 janvier 2009
-
cs_funseb
Messages postés
154
Date d'inscription
dimanche 29 juin 2003
Statut
Membre
Dernière intervention
28 janvier 2010
-
bonjour,
je n arrive pas a faire defiler un enregistremnt depuis une table sql server;
en faite le probleme c est que je defile le premier enregistrement avc movenext et puis c est stable...
voila mon code :
Private Sub cmd_suivant_Click()
Dim vCon As New ADODB.Connection
Dim vRs As New ADODB.Recordset

vRs.CursorType = 1
vCon.Open vNPAIConnectionString
vCon.CommandTimeout = 1200

vRs.Open "select * from fiche_relance where per_id = '" & vTAId & "' ", vCon


If Not vRs.EOF Then

vRs.MoveNext

ficid.Text = vRs("fic_id")
perid.Text = vRs("per_id")
fic_nom_clt.Text = vRs("fic_nom_clt")
txt_prenom_clt = vRs("fic_prenom_clt")
gsm_client.Text = vRs("fic_tel")

Else
MsgBox ("aucune fiche restante !")
End If

vRs.close
Set vRs = Nothing
vCon.close
Set vCon = Nothing

End Sub

5 réponses

Messages postés
154
Date d'inscription
dimanche 29 juin 2003
Statut
Membre
Dernière intervention
28 janvier 2010
1
Salut,

C'est normal, tu réalises ta requète dans ton événement click !! donc à chaque fois que tu cliques sur ton cmd_suivant, il réactualise ton recordset et remet la position au premier enregistrement de ton recordset ! Il faut que tu remplissent ton recordset en dehors de ta procédure click , dans le form load par exemple !
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 250 internautes nous ont dit merci ce mois-ci

Messages postés
85
Date d'inscription
jeudi 17 novembre 2005
Statut
Membre
Dernière intervention
15 février 2006
2
Je ne comprends pas très bien ton problème, si tu veux parcourir tous tes enregistrements, il suffit de faire une boucle.

While Not vRs.EOF
ficid.Text = vRs("fic_id")
perid.Text = vRs("per_id")
fic_nom_clt.Text = vRs("fic_nom_clt")
txt_prenom_clt = vRs("fic_prenom_clt")
gsm_client.Text = vRs("fic_tel")
vRs.MoveNext
Wend
Messages postés
44
Date d'inscription
jeudi 9 juin 2005
Statut
Membre
Dernière intervention
29 janvier 2009

merci funseb, j ai bien compris ce que tu veut dire mais j ai pas pu realiser la methode c est a dire saisir le recordset ds la form load puis la recuperer ds le click suivant si tu peut me donner cet expl je serait content.merci
Messages postés
85
Date d'inscription
jeudi 17 novembre 2005
Statut
Membre
Dernière intervention
15 février 2006
2
Désolé pour ma réponse je n'avais effectivement pas compris le problème
Messages postés
154
Date d'inscription
dimanche 29 juin 2003
Statut
Membre
Dernière intervention
28 janvier 2010
1
ok, je dois t'avouer que je suis un peu rouiller en vb, je suis passé en .net depuis 8 mois ... donc a tester :
tu declare
Dim vCon As New ADODB.Connection
Dim vRs As New ADODB.Recordset
en haut de ta page (général),

ensuite dans le form load tu met :
vRs.CursorType = 1
vCon.Open vNPAIConnectionString
vCon.CommandTimeout = 1200

vRs.Open "select * from fiche_relance where per_id = '" & vTAId & "' ", vCon
ficid.Text = vRs("fic_id")
perid.Text = vRs("per_id")
fic_nom_clt.Text = vRs("fic_nom_clt")

txt_prenom_clt = vRs("fic_prenom_clt")

gsm_client.Text = vRs("fic_tel")

puis ds ton cmd_suivant :

If Not vRs.EOF Then

vRs.MoveNext

ficid.Text = vRs("fic_id")
perid.Text = vRs("per_id")
fic_nom_clt.Text = vRs("fic_nom_clt")
txt_prenom_clt = vRs("fic_prenom_clt")
gsm_client.Text = vRs("fic_tel")

Else
MsgBox ("aucune fiche restante !")
End If

enfin dans un bouton quitter ou à la fermeture de ta pae :
vRs.close
Set vRs = Nothing
vCon.close
Set vCon = Nothing

Voila, mais je suis pas certain !