BenHarber
XLDnaute Occasionnel
Bonjour le Forum,
J’ai un souci qui dépasse, je crois, le strict cadre de VBA.
J’utilise fréquemment des macros qui présentent des requêtes SQL allant piocher les infos sur un fichier source Excel qui reste fermé (c’est l’avantage : ça prend bien moins de temps !).
Lorsque ce fichier Excel source est au format « .xls » (fichiers Excel 1997-2003), le code suivant fonctionne très bien :
Set Cn = CreateObject("ADODB.Connection")
With Cn
.Provider = "MSDASQL"
.ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & "DBQ=" & wbkDerExtr & "; ReadOnly=True;"
.Open
End With
Set rqst = CreateObject("ADODB.Connection")
Set rqst = Cn.Execute(cde_SQL)
En revanche, lorsque le fichier Source est au format « .xlsx » (fichiers Excel 2010 et suivants), le code fonctionne plus : il bugue sur la commande « .Open » et me retourne le message suivant :
Erreur d’exécution ‘-2147467259 (80004005)
[Microsoft][Pilote ODBC Excel]La table Excel n’est pas dans le format attendu
J’ai bien sur essayé d’ajouter un ‘’x’’ à la commande ci-dessous, mais sans succès : j’ai toujours le même message !
.ConnectionString = "Driver={Microsoft Excel Driver (*.xlsx)};" & "DBQ=" & wbkDerExtr & "; ReadOnly=True;"
En fouillant sur divers sites, j’ai cru comprendre que mon problème pouvait provenir d’un driver ODBC non installé, mais sur ce type de sujets, les limites de mes compétences sont atteintes et je ne comprends plus grand-chose !!!
J'ai cependant bien l'impression qu'il faut que je modifie la ligne suivante :
"Driver={Microsoft Excel Driver (*.xls)}
Est-ce que quelqu’un aurait déjà rencontré ce type de problème ou aurait une piste à me donner ?
Merci d’avance !!
BH
J’ai un souci qui dépasse, je crois, le strict cadre de VBA.
J’utilise fréquemment des macros qui présentent des requêtes SQL allant piocher les infos sur un fichier source Excel qui reste fermé (c’est l’avantage : ça prend bien moins de temps !).
Lorsque ce fichier Excel source est au format « .xls » (fichiers Excel 1997-2003), le code suivant fonctionne très bien :
Set Cn = CreateObject("ADODB.Connection")
With Cn
.Provider = "MSDASQL"
.ConnectionString = "Driver={Microsoft Excel Driver (*.xls)};" & "DBQ=" & wbkDerExtr & "; ReadOnly=True;"
.Open
End With
Set rqst = CreateObject("ADODB.Connection")
Set rqst = Cn.Execute(cde_SQL)
En revanche, lorsque le fichier Source est au format « .xlsx » (fichiers Excel 2010 et suivants), le code fonctionne plus : il bugue sur la commande « .Open » et me retourne le message suivant :
Erreur d’exécution ‘-2147467259 (80004005)
[Microsoft][Pilote ODBC Excel]La table Excel n’est pas dans le format attendu
J’ai bien sur essayé d’ajouter un ‘’x’’ à la commande ci-dessous, mais sans succès : j’ai toujours le même message !
.ConnectionString = "Driver={Microsoft Excel Driver (*.xlsx)};" & "DBQ=" & wbkDerExtr & "; ReadOnly=True;"
En fouillant sur divers sites, j’ai cru comprendre que mon problème pouvait provenir d’un driver ODBC non installé, mais sur ce type de sujets, les limites de mes compétences sont atteintes et je ne comprends plus grand-chose !!!
J'ai cependant bien l'impression qu'il faut que je modifie la ligne suivante :
"Driver={Microsoft Excel Driver (*.xls)}
Est-ce que quelqu’un aurait déjà rencontré ce type de problème ou aurait une piste à me donner ?
Merci d’avance !!
BH