Ado

Signaler
Messages postés
208
Date d'inscription
vendredi 7 mai 2004
Statut
Membre
Dernière intervention
15 août 2005
-
Messages postés
208
Date d'inscription
vendredi 7 mai 2004
Statut
Membre
Dernière intervention
15 août 2005
-
bonjour a tous g un gros probleme avec movenext et movefirst
g fai sa
Private Sub suivant_Click()
Dim strSql As String
Dim Ors As ADODB.Recordset
strSql = "select * from contact where num >0"
Set Ors = New ADODB.Recordset
Ors.Open strSql, cnx, , , adCmdText


If Ors.EOF = False Then
Ors.MoveNext
Text1.Text = Ors.Fields("prenom")
Text2.Text = Ors.Fields("nom")
End If
End Sub

et quand je fai suivant ou meme retour je pe le faire que 2 fois apres sa avence ou recule plus je c pas si vous arriver a comprendre
merci de me dire si il i a une erreur ou meme une methode pour faire mieux

psicofox6@hotmail.com==

10 réponses

Messages postés
46
Date d'inscription
mardi 9 décembre 2003
Statut
Membre
Dernière intervention
25 novembre 2006

Bonjour,
Je serais toi je ferais plutôt un truc du genre :
While Not Ors.EOF
Text1.text=Ors.Fields("prenom")
Text2.text=Ors.Fields("nom")
Ors.Movenext
Wend

Parce qu'avec ton code si tu ne récupères qu'une seule ligne dans le recordset, tu auras une erreur.
@+
Olan
Messages postés
1352
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
19 novembre 2008
2
L'erreur vient du fait que tu ouvres la même requete à chaque fois que tu clic sur suivant donc il recommence de zero.





la solution est que tu déclare les variable en haut ensuite tu ouvres la requete dans Form_Load



Dim strSql As String



Dim Ors As ADODB.Recordset





Form_Load ===>





strSql = "select * from contact where num >0"

Set Ors = New ADODB.Recordset

Ors.Open strSql, cnx, , , adCmdText





ensuite



Private Sub suivant_Click()

if not Ors.eof then

Text1.text=Ors.Fields("prenom")

Text2.text=Ors.Fields("nom")

Ors.Movenext

endif

end sub
Messages postés
208
Date d'inscription
vendredi 7 mai 2004
Statut
Membre
Dernière intervention
15 août 2005

ok merci c parfai

psicofox6@hotmail.com==
Messages postés
208
Date d'inscription
vendredi 7 mai 2004
Statut
Membre
Dernière intervention
15 août 2005

enfin encore un probleme cette foi c avec le retour

Dim strSql As String
Dim Ors As ADODB.Recordset

Form_Load ===>
strSql = "select * from contact where num >0"
Set Ors = New ADODB.Recordset
Ors.Open strSql, cnx, , , adCmdText

Private Sub suivant_Click()
If Ors.EOF = False Then
Ors.MoveNext
If Ors.EOF = False Then
Text1.Text = Ors.Fields("prenom")
Text2.Text = Ors.Fields("nom")
End If
End If
end sub

Private Sub retour_Click()
If Ors.BOF = False Then
Ors.MovePrevious
If Ors.BOF = False Then
Text1.Text = Ors.Fields("prenom")
Text2.Text = Ors.Fields("nom")
End If
End If
End Sub

et il me dit :
l'operation demendée n'est pas autorisée dans ce contexte
alors je c pas se qu'il a parce que suivant sa marche trés bien
merci de m'aidé

psicofox6@hotmail.com==
Messages postés
1352
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
19 novembre 2008
2
t'es sûr qu'il n'y a pas de Ors.close que tu as utilisé ??
Messages postés
208
Date d'inscription
vendredi 7 mai 2004
Statut
Membre
Dernière intervention
15 août 2005

mon code complé


Private cnx As ADODB.Connection
Dim strSql As String
Dim Ors As ADODB.Recordset


Private Sub Form_Load()
Set cnx = New ADODB.Connection
cnx.Provider = "Microsoft.Jet.OLEDB.4.0"
cnx.Open "c:\db1.mdb"
strSql = "select * from contact where num >0"
Set Ors = New ADODB.Recordset
Ors.Open strSql, cnx, , , adCmdText
End Sub


Private Sub suivant_Click()
If Not Ors.EOF Then
Ors.MoveNext
If Not Ors.EOF Then
Text1.Text = Ors.Fields("prenom")
Text2.Text = Ors.Fields("nom")
End If
End If
End Sub


Private Sub retour_Click()
If Not Ors.BOF Then
Ors.MovePrevious
If Not Ors.BOF Then
Text1.Text = Ors.Fields("prenom")
Text2.Text = Ors.Fields("nom")
End If
End If
End Sub

psicofox6@hotmail.com==
Messages postés
208
Date d'inscription
vendredi 7 mai 2004
Statut
Membre
Dernière intervention
15 août 2005

il me mes l'erreur sur

Ors.MovePrevious

psicofox6@hotmail.com==
Messages postés
46
Date d'inscription
mardi 9 décembre 2003
Statut
Membre
Dernière intervention
25 novembre 2006

Question toute bête mais ça existe le BOF sur le recordset ADO. En DAO d'accord mais ADO ???
Messages postés
1352
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
19 novembre 2008
2
S'il s'agit d'une requete change

Ors.Open strSql, cnx, adOpenDynamic

si c'est une table directe

Ors.Open strSql, cnx, adOpenStatic
Messages postés
208
Date d'inscription
vendredi 7 mai 2004
Statut
Membre
Dernière intervention
15 août 2005

merci frop01 sa marche

psicofox6@hotmail.com==