base mysql

M

mickael_one

Guest
Salut le forum

J'ai un problème de retour de base mysql !!
ma macro est du style :

Dim Cnx As Connection, requete As String, resultat As Recordset
'
Set Cnx = CreateObject('ADODB.Connection')
Cnx.ConnectionString = 'table;'
Cnx.Open
'
requete = 'SELECT * FROM conges WHERE incidence='1''
Set resultat = Cnx.Execute(requete)
If (Not resultat.EOF) Then
for i=0 to resultat.RecordCount
'
'et là je fais plein de truc super bien
'
next i
end if

Mon problème est que mon RecordCount reste toujours à -1 quelque soit le nombre de résultat !!! :( Donc en fait, ça fonctionne pour le premier résultat trouvé, mais ça ne boucle pas ! Savez vous pourquoi ?

Merci beaucoup
 
M

mickael_one

Guest
bonjour Enzobob, MichelXld, le forum,

D'abord, merci Enzobob, mais le problème ne vient pas de la boucle mais du fait que le recordcount reste à -1.

MichelXLD, j'ai été voir ton lien et après une matinée a essayer tout, dans tous les sens, je n'y arrive pas ! :unsure:

j'ai essayé :

Dim Cnx As Connection, requete As String, resultat As Recordset

requete = 'SELECT * FROM table WHERE incidence='1''
Set Cnx = CreateObject('ADODB.Connection')
Cnx.ConnectionString = 'table;'
With Cnx
.ActiveConnection = Cnx
.Open requete, , adOpenStatic, adLockOptimistic, adCmdText
End With
Set resultat = Cnx.Execute(requete)

Il me dit que le nombre d'argument est incorect ou affectation incorect pour le .open requete...

j'ai essayé :

Dim Cnx As Connection, requete As String, resultat As Recordset

requete = 'SELECT * FROM table WHERE incidence='1''
Set Cnx = CreateObject('ADODB.Connection')
Cnx.ConnectionString = 'table;'
With resultat
.ActiveConnection = Cnx
.Open requete, , adOpenStatic, adLockOptimistic, adCmdText
End With
Set resultat = Cnx.Execute(requete)

là, il me dit que Variable objet ou variable de bloc With non défini !

Ca doit te paraitre évident mais moi je nage un peu (beaucoup)
Bref, si tu peux encore m'aider un petit peu, ça serait très sympa !
Merci beaucoup
 

Enzobob

XLDnaute Nouveau
Bonjour mickael_one et le forum

tu peux essayer ca je l'utilise assez souvent cela marche bien, par contre pense à rajouter la reference à ado dans vba.
pour ton deuxieme exemple je crois que le problème viens simplement du fait que la connection à la base ne c'est pas faite.

Private Sub MaConnection()
Dim Cnx As ADODB.Connection
Dim requete As String

Set Cnx = New ADODB.Connection
requete = 'driver={Microsoft Access Driver (*.mdb)};dbq=' 'ta base de données
Cnx.Open requete
End Sub

Private Sub MaRequete()
Dim resultat As ADODB.Recordset

Call MaConnection
Set resultat = New ADODB.Recordset
RsDotation.Open 'SELECT * FROM table WHERE incidence = '1 ;', Cnx, adOpenStatic, adLockOptimistic, adCmdText
'ensuite ta requete d'affichage
End Sub
Enjoy
 

Enzobob

XLDnaute Nouveau
Enzobob écrit:
Bonjour mickael_one et le forum

tu peux essayer ca je l'utilise assez souvent cela marche bien, par contre pense à rajouter la reference à ado dans vba.
pour ton deuxieme exemple je crois que le problème viens simplement du fait que la connection à la base ne c'est pas faite.

Private Sub MaConnection()
Dim Cnx As ADODB.Connection
Dim requete As String

Set Cnx = New ADODB.Connection
requete = 'driver={Microsoft Access Driver (*.mdb)};dbq=' 'ta base de données
Cnx.Open requete
End Sub

Private Sub MaRequete()
Dim resultat As ADODB.Recordset

Call MaConnection
Set resultat = New ADODB.Recordset
resultat.Open 'SELECT * FROM table WHERE incidence = '1 ;', Cnx, adOpenStatic, adLockOptimistic, adCmdText
'ensuite ta requete d'affichage
End Sub
Enjoy
 

Discussions similaires

Réponses
12
Affichages
253

Statistiques des forums

Discussions
312 322
Messages
2 087 267
Membres
103 502
dernier inscrit
talebafia