QueryTables: Comment savoir si une source de données ODBC existe sur le poste ?

  • Initiateur de la discussion Initiateur de la discussion SVri
  • Date de début Date de début

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 !

SVri

XLDnaute Nouveau
Bonjour le Forum!

Dans un fichier utilisé par plusieurs utilisateurs, j'utilise des QueryTables qui chargent des éléments dans un combo (ds un Userform), depuis notre GPAO.

Les QueryTables utilisent des 'sources de données ODBC' qui doivent normalement exister sur le poste.
Je voudrais tester, dans mon code, si, par ex. la source de données "TOTO" existe bien. Est-ce possible ?
Peut-on la créer par VBA ?

Merci pour vos réponses ...
SVri
 
Re : QueryTables: Comment savoir si une source de données ODBC existe sur le poste ?

Bonjour,

cette macro utilisant WMI t'indique toutes les sources de données ODBC installées dans le système:
Sub lister_odbc()
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."

Set oreg= GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")

chemin_cle = "SOFTWARE\ODBC\ODBCINST.INI"
oReg.EnumKey HKEY_LOCAL_MACHINE, chemin_cle, liste_odbc
lig = 1
For Each souscle In liste_odbc
Cells(lig, 1) = souscle
lig = lig + 1
Next
End Sub
 
Dernière édition:
Re : QueryTables: Comment savoir si une source de données ODBC existe sur le poste ?

Bonjour Michel_M, JMPS,

Merci pour ta macro.
Je l'ai modifiée (nom du .ini) pour lister les noms des liens ODBC créés sur la machine (ta macro, quant à elle liste les drivers disponibles):

Code:
Sub lister_odbc()
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."

Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")

chemin_cle = "SOFTWARE\ODBC\ODBC.INI"
oReg.EnumKey HKEY_LOCAL_MACHINE, chemin_cle, liste_odbc
lig = 1
For Each souscle In liste_odbc
Cells(lig, 1) = souscle
lig = lig + 1
Next
End Sub

Merci beaucoup pour ton aide !

Si quelqu'un pouvait nous aiguiller sur l'ajout d'une source de données via une macro, je serais un homme comblé !
 
Re : QueryTables: Comment savoir si une source de données ODBC existe sur le poste ?

Bonjour José, re SVri

La macro de ce matin est une adaption à VBA (facile) d'un Wscript.

On peut trouver plein d'exemples de scripts à cet URL sur le MSDN:
ADSI Samples


Bonne lecture

Je vais fouiner un peu à tête reposée ce WE s'il continue de faire un temps pluvieux dans mon coin et en sauvegardant ma base de registre au préalable! voir pour écrire dans la base de registre autre qu'à la clé classique dans office.
Peut-être cela pourrait aboutir à une démo (collaborative j'espère)
 
- 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

Retour