J'ai le message suivant : "Etat E_FAIL a été renvoyé par le fournisseur de données ou par un autre service" dans mon programme à l'événement form_load.
Au debogage, c'est la ligne rouge qui serait responsable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Private Sub Form_Load() Set rstSyscoa = New ADODB.Recordset rstSyscoa.Open sqlSyscoa, con, adOpenStatic, adLockOptimistic, adCmdText If rstSyscoa.RecordCount > 0 Then rstSyscoa.MoveFirst ' remplissage du formulaire via la fonction remplirForm Call remplirForm Else inf_userConnecte = strInfoConnecte inf_compte = "0 compte(s)" End If End Sub
Pour information, la requête sql (sqlSyscoa) est la suivante : "Select s.* from t_compte s". Cette requête renvoie 1200 lignes
La fonction permettant d'ouvrir la connexion (con) est la suivante:
Sur toute l'application j'utilise la même démarche et c'est seulement avec cette requete (ou table) que j'ai ce problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 Public con As ADODB.Connection Function OuvrirConnexionMySql() As Object Dim bCnOk As Boolean On Error GoTo ErrH01 ' On suppose par défaut que la connexion est établie bCnOk = True ' Vérifier si la connexion est active bCnOk = (con.State = adStateOpen) ' Si elle n'est pas active, libérer l'objet If (Not bCnOk) Then Set con = Nothing On Error GoTo ErrH ' Etablir la connexion si besoin If (Not bCnOk) Then ' Créer l'objet Set con = New ADODB.Connection ' Etablir la connexion con.CursorLocation = adUseClient con.Open "Provider=MSDASQL;" & _ "Driver={MySQL ODBC 5.3.2 Driver};" & _ "Server=adresse_ip_du_serveur;" & _ "Data Source=nom_liaison_odbc;" & _ "Port=3306;" & _ "Database=nom_base_de_donnee;" & _ "User=user;" & _ "Password=password;" & _ "Option=16426 " End If ExitFn: ' Retourner l'objet con Set OuvrirConnexionMySql = con Exit Function ErrH01: bCnOk = False Resume Next ErrH: Set con = Nothing MsgBox "Erreur No." & Err.Number & " : " & Err.description, vbCritical Resume ExitFn End Function
Merci de votre aide
Partager