ODBC l'appel a échoué

breizhoneg

XLDnaute Nouveau
Bonjour le forum,

Une fois de plus, je me tourne vers vous pour m'aider a trouver une solution a mon petit problème.
Je souhaite faire des extractions dans une base SQL. Cela fonctionnait mais depuis quelque temps a chaque fois que je souhaite utiliser mon outil, j'ai le message d'erreur suivant :

erreur d'exécution 3146: ODBC -- l'appel a échoué.

Mon code est :

Sub alao()
Dim Table_Transfert(60000, 25) As String 'définition nb ligne colone de la réponse de la requête
Dim wrkJet As Workspace
Dim DbSaisie As Database
Dim RecordSaisie As Recordset
Dim rstTemp As Recordset


Dim query As String

'-----------------------------------
'Récupération de la requete
'-----------------------------------

NbLignes = Range("Requete_1").Rows.Count
req = ""
For i = 1 To NbLignes
req = req + Range("Requete_1").Cells(i).Value
Next

'connextion et lecture de la requete
Set WrkMySQL = CreateWorkspace("MySQL", "Admin", "", dbUseODBC)
Set TableMySQL = WrkMySQL.OpenDatabase("toto", , True, "ODBC;DSN=toto;UID=user;PWD=Password;database=Base")

query = req
Set rs = TableMySQL.OpenRecordset(query)

With rs
i = 0
j = 1
Do Until rs.EOF
On Error Resume Next
Do Until i = 25
Table_Transfert(j, i + 1) = rs.Fields(i).Value
i = i + 1
Loop
i = 0
j = j + 1
.MoveNext
Loop
End With

rs.Close
TableMySQL.Close
WrkMySQL.Close

A chaque fois l'erreur a l'air de se produire sur la ligne : Set rs = TableMySQL.OpenRecordset(query)

Par avance merci de votre aide.

BzH
 

breizhoneg

XLDnaute Nouveau
Re : ODBC l'appel a échoué

Re bonjour au forum,

Après pas mal de tentative en tout genre, j'ai réussi a contourner mon problème. En fessant la chose suivante.

Sub alao()
Dim Table_Transfert(60000, 25) As String 'définition nb ligne colone de la réponse de la requête
Dim wrkJet As Workspace
Dim DbSaisie As Database
Dim RecordSaisie As Recordset
Dim rstTemp As Recordset


Dim query As String

'-----------------------------------
'Récupération de la requete
'-----------------------------------



'connextion et lecture de la requete
Set WrkMySQL = CreateWorkspace("MySQL", "Admin", "", dbUseODBC)
Set TableMySQL = WrkMySQL.OpenDatabase("toto", , True, "ODBC;DSN=toto;UID=user;PWD=Password;database=Base ")

query = "ma requête"
Set rs = TableMySQL.OpenRecordset(query)

Vous allez me dire, ça marche, je peut donc avancer, mais j'aime pas rester sur une chose que je ne comprend pas...

Si quelqu'un peut m'expliquer pourquoi en écrivant directement ma requête dans le code ça fonctionne?

Surtout que cet outil me sert a lancer exécuter plusieurs requêtes a la suite...

Par avance merci!!
 

Discussions similaires

L
Réponses
6
Affichages
3 K
Ludo-ly
L