Bonjour,
J'ai un problème pour recupérer des données d'une base MySQL et je ne comprend pas ce qui pose problème (j'ai bien sure installé une base MySQL et un driver ODBC).
J'ai donc une base de données MySQL sur la quel je me connect et tente de récup des données. J'ai dévelopé un module de classe pour communiquer avec ma base (très inspirer d'un code trouver sur CodeS SourceS il y à quel que temps, merci à celui/celle qui l'à posté ici). Voila un bout du code de cette classe :
-------------------------------------------------------
Private connex As ADODB.Connection
Private Sub Class_Initialize()
Set connex = New ADODB.Connection
End Sub
Public Sub etablir_connec(ByRef Serveur As String, ByRef BaseDeDonnées As String, ByRef User As String, ByRef Password As String)
On Error GoTo Erreur
connex.CursorLocation = adUseServer
connex.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=" & Serveur & ";DATABASE=" & BaseDeDonnées & ";USER=" & User & ";PASSWORD=" & Password & ";OPTION=" & 85 & "" 'lalala
Exit Sub
Erreur:
MsgBox "Impossible de trouver la base de données."
End Sub
Public Function requete(ByVal rs_sql As String, ByRef rs_sub As ADODB.Recordset) As Boolean
If connex.State = 0 Then
requete = False
Exit Function
End If
If connex.State = 1 Then
Set rs_sub = New ADODB.Recordset
rs_sub.ActiveConnection = connex
On Error GoTo Erreur
rs_sub.Open rs_sql, connex, adOpenDynamic, adLockOptimistic
If rs_sub.EOF Then
requete = False '*******************************************************************
Else
requete = True
End If
Exit Function
Erreur:
MsgBox "Une erreur c'est produite avec.... " & rs_sql
requete = False
End Function
Public Function EtatConnection() As Boolean
EtatConnection = connex.State
End Function
-------------------------------------------------------
Mes tables sont : Articles,Vecteur et AnalysesSpecifiques. Pour le momant seul AnalysesSpecifiques contient des données (3 ligne pour être exacte)
Un objet global "Connexion" est déclarer et base sur la classe d'ont j'ai mit le code plus haut.
Je me connect donc, à premierre vue pas de problème, la connection s'execute sans erreur, et la fonction EtatConnection (soit la valeur de connex.State) est à 1 (donc si je ne me trompe pas la connection est OK). Si j'execute la requette "SELECT COUNT(*) FROM AnalysesSpecifiques" l'objet passée à la fonction 'requete' contient la valeur "3". Donc j'ai bien 3 ligne de données dans cette base
MAIS et
c'est là ma question losque j'execute la requette "SELECT * FROM AnalysesSpecifiques" mon objet est vide et le compilo me dit que je ne peut pas faire "DonneesBdD.GetString(adClipString, -1, ";", "|", "NULL")" sur un objet fermer!!! Et en plus la fonction requete me retourne faux (valeur retourné pare la ligne marqué d'*). Voila le code que j'execute pour avoir des données :
--------------------------------------------------------
Dim RetourDonnees As ADODB.Recordset
Dim Donnees as String
if Connexion.requete("SELECT * FROM AnalysesSpecifiques", RetourDonnees) then
Donnees = RetourDonnees.GetString(adClipString, -1, ";", "|", "NULL")
else
msgbox "Erreur1"
endif----------------------------------------------------------
Le message box s'execute alors (message "Erreur1" bien sure)
Or je rapel que si j'execute
--------------------------------------------------------
Dim RetourDonnees As ADODB.Recordset
Dim Donnees as String
if Connexion.requete("SELECT COUNT(*) FROM AnalysesSpecifiques", RetourDonnees) then
Donnees = RetourDonnees.GetString(adClipString, -1, ";", "|", "NULL")
else
msgbox "Erreur1"
endif----------------------------------------------------------
alors j'ai la valeur 3 dans Donnees.
Je ne comprand plus rien moi

HELP

!!!
Je pense avoir été sufisament précis mais si vous avez la moindre question posé là.
PS : Si quel qu'un sais à quois serv l'opion à 85 (ligne avec le commentaire 'lalala) je serais contant de le savoir.
Merci
Amicalement 