[Microsoft] [Pilote ODBC Excel] La connexion permettant de visualiser votre feuille

Boyboy

XLDnaute Nouveau
Bonjour,
j'ai un problème avec une macro qui permet normalement de récupérer des données d'un onglet Excel dans un autre via une requête SQL.

Hors à l'éxécution de cette macro, j'obtiens le message suivant :

[Microsoft] [Pilote ODBC Excel] La connexion permettant de visualiser votre feuille de calcul Microsoft Excel liée est perdue.

Pourriez-vous m'aider ?? Merci !

Voici mon code :


'************************************
Public my_connect As ADODB.Connection
Public rstCourant As ADODB.Recordset
'************************************
Public Sub connexion_Excel()

Dim Fichier As String
Dim sConn As String

Set my_connect = New ADODB.Connection

Fichier = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name

sConn = "DSN=Excel Files;"
sConn = sConn & "DBQ=" & Fichier & ";"
sConn = sConn & "DefaultDir=" & Fichier & ";"
sConn = sConn & "DriverId=1046;MaxBufferSize=2048;PageTimeout=5;"

my_connect.Open sConn

End Sub
'************************************
Public Sub executeSQL(ByVal sSQL As String, ByVal shResult As Worksheet, ByVal iNumColonne As Integer, ByRef lNumLigne As Long)
Dim NumLigneDeb As Long
NumLigneDeb = lNumLigne

Set rstCourant = New ADODB.Recordset
connexion_Excel

rstCourant.Open sSQL, my_connect

'Copie des données du résultat
shResult.Cells(lNumLigne, iNumColonne).CopyFromRecordset rstCourant
rstCourant.Close

End Sub
'************************************
 

Boyboy

XLDnaute Nouveau
Re : [Microsoft] [Pilote ODBC Excel] La connexion permettant de visualiser votre feui

Ca y est : j'ai trouvé!
L'erreur venait du fait que les données présentes dans la plage nommée que j'avais créée, changaient de formats...
Et de ce fait, si dans une colonne, il existe plus d'1 format de donnée, alors ça plante.

J'ai tout forcé au format "standard", et la macro fonctionne très bien !
 
G

Guest

Guest
Re : [Microsoft] [Pilote ODBC Excel] La connexion permettant de visualiser votre feui

Bonjour,

Je suppute que c'est du au fait que tu interrorges le fichier actif:
Code:
Fichier = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
Qui d'ailleurs peut avantageusement être remplacé par ActiveWorkBook.FullName!

Les pilotes ODBC Excel n'aimes posent souvent des problèmes dans ce genre de choses.
Essaie de changer ta chaine de connexion en allant voir par là: Excel connection strings - ConnectionStrings.com

A savoir qu'excel travaillant sur des fichiers temporaires, que les résultats d'une requête sur un classeur excel, ne reflèteront pas systématiquement les dernières mises à jour, mais celles en dates du dernier enregistrement du classeur.

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 316
Membres
102 860
dernier inscrit
fredo67