BUG de parcours d'enregistrements avec MoveNext !

ktypao Messages postés 8 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 30 mars 2006 - 9 juin 2005 à 11:50
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 - 9 juin 2005 à 12:33
Salut!

J'ai déja posté un message à propos de MoveNext, et cette fois-ci c'est encore lui qui me pose problème mais pour une autre raison. Mon recordSet ne parcours pas tout les enregistrements de ma table car au 2 ième enregistrement, ça plante.

J'ai l'erreur: "Un état E_FAIL a été renvoyé par le fournisseur de données ou par un autre service"
L'erreur vient de MoveNext.

Et j'ai testé que lors du premier passage dans ma boucle While, moveNext a fonctionné, il ne plante qu'au deuxième passage. (J'ai une dizaine d'enregistrements pour cette table)
Je ne comprend vraiment pas pourquoi, merci de m'éclairer.
Et comme je suis débutante, mon code doit être un peu bordelique, si vous avez des conseils je suis preneuse...

Merci d'avance

Voici le code:

Dim conn As ADODB.Connection
Dim rs1 As ADODB.Recordset
Set conn = New ADODB.Connection
conn.CursorLocation = adUseClient
conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" _
& "SERVER=localhost;" _
& "DATABASE=Stock;" _
& "UID=root;" _
& "PWD=;" _
& "OPTION=" & 1 + 2 + 8 + 32 + 2048 + 16384

Set rs1 = New ADODB.Recordset

Dim str As String
str = "SELECT * FROM Mat "


rs1.Open str, conn, adOpenStatic, adLockPessimistic

rs1.MoveFirst

While (rs1.EOF = False)
If (rs1("Designation") = MatSel) Then
Label_Ref.Caption = rs1("Reference")
End If
rs1.MoveNext ' <------le MoveNext qui plante au 2ième tour
Wend


conn.Close

2 réponses

elpaulo Messages postés 135 Date d'inscription vendredi 17 novembre 2000 Statut Membre Dernière intervention 12 août 2008
9 juin 2005 à 11:58
essaye en mettant :

do until rs1.eof 'Sans le = false
'ici ton code
loop

Le reste a l'air bon
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
9 juin 2005 à 12:33
Dim str As String
str = "SELECT * FROM Mat "

rs1.Open str, conn, adOpenStatic, adLockPessimistic
rs1.MoveFirst
Do Until rs1.eof
If (rs1("Designation") = MatSel) Then
Label_Ref.Caption = rs1("Reference")
End If
rs1.MoveNext
Loop
conn.Close

It@li@
0
Rejoignez-nous