Problème de source de données ODBC

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

eleda28

XLDnaute Nouveau
Bonjour,

quand je lance ma macro, elle s'arrête sur cette ligne :
Code:
With ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal).Connection = _
        "ODBC;DSN=INFO_CLIENTS;DBQ=J:\BASE_DE_DONNEES_ACCESS\INFOS_CLIENTS.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;"
et me renvoie cette erreur : "N'est pas une source de données ODBC"
Quel est le problème??

Merci pour votre aide
 
Re : Problème de source de données ODBC

Bonjour eleda28,

Le code :

Code:
ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal)

renvoie un objet PivotCache non encore connecté à une source de données.

En particulier, son attribut Connection est inaccessible en lecture. Essayer d'y accéder entraine l'erreur "Not an ODBC Data Source Or Web Query", que tu as expérimentée.

L'attribut Connection n'est accessible, à ce moment, qu'en écriture, à condition de rentrer une chaîne de connection valide. La connection n'est pas réellement établie à ce moment, mais la syntaxe doit être correcte sous peine d'un message d'erreur.

Lorsque tu écris :

Code:
With ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal).Connection = "chaîne de connection"

tu accèdes à l'attribut Connection en lecture, à cause de l'instruction With.

En effet, With Expression = "...", met Expression "à disposition" dans la suite du code (jusqu'à l'instruction End With de fermeture), et dans un deuxième temps, affecte la valeur "..." à Expression.

Remarque néanmoins que l'instruction "With Expression" ne fonctionne que si Expression est un Objet. Si, comme dans notre cas, Expression est un Variant(/String), le (pseudo) compilateur autorisera le déroulement du code, car un Variant peut contenir un objet, mais c'est un non sens, car le but du With est d'accéder rapidement aux méthodes et attributs de Expression, pas à Expression elle même ...

La syntaxe correcte la plus simple est :

Code:
ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal).Connection = "chaine de connection"

Ou bien :

Code:
With ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal)
    .Connection = "chaine de connection"
    ...
End With

De manière à pouvoir accéder aux attributs/méthodes de l'objet PivotCache nouvellement créé.

@+
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
33
Affichages
4 K
Retour