Accueil > > > CRÉER UNE DSN ODBC (VBA/VB6)
CRÉER UNE DSN ODBC (VBA/VB6)
Information sur la source
Description
Plutôt que de passer par le gestionnaire des sources de données (ODBC Data Sources Administrator) pour créer une nouvelle DSN, voilà une fonction qui permet de le faire par le biais d'un code. Cette fonction est écrite pour être utilisée en VBA/VB6 (utilisation de déclarations API) . J'ai posté une autre source pour VBScript. Exemple: -------- Function SetDSN() Call Set_ODBC_DSN(True, "NomDeLaDsn", "NomDeLaBaseDeDonnées", "", "SQLSRV32.dll", "SQL Server", "NomDuServeur") End Function UserDSN prend la valeur TRUE pour créer une DSN utilisateur, et FALSE pour une DSN système.
Source
- Private Const REG_SZ = 1
- Private Const HKEY_LOCAL_MACHINE = &H80000002
- Private Const HKEY_CURRENT_USER = &H80000001
- Private Const REG_ODBCINI As String = "SOFTWARE\ODBC\ODBC.INI\"
- Private Const REG_ODBCINI_DS As String = "SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources"
- Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
- Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
- Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
- Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
-
- Private Sub Set_ODBC_DSN(UserDSN As Boolean, _
- DataSourceName As String, DatabaseName As String, _
- Description As String, DriverPath As String, _
- DriverName As String, Server As String)
- Dim lResult As Long
- Dim hKeyHandle As Long
- Dim HKEY_XX As Long
- HKEY_XX = IIf(UserDSN, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE)
- 'Création d'une nuvelle clé dans la base de registre.
- lResult = RegCreateKey(HKEY_XX, REG_ODBCINI & DataSourceName, hKeyHandle)
- 'Valeurs de la clé.
- lResult = RegSetValueEx(hKeyHandle, "Database", 0&, REG_SZ, ByVal DatabaseName, Len(DatabaseName))
- lResult = RegSetValueEx(hKeyHandle, "Description", 0&, REG_SZ, ByVal Description, Len(Description))
- lResult = RegSetValueEx(hKeyHandle, "Driver", 0&, REG_SZ, ByVal DriverPath, Len(DriverPath))
- lResult = RegSetValueEx(hKeyHandle, "LastUser", 0&, REG_SZ, ByVal "user", Len("user"))
- lResult = RegSetValueEx(hKeyHandle, "Server", 0&, REG_SZ, ByVal Server, Len(Server))
- 'On ferme la clé.
- lResult = RegCloseKey(hKeyHandle)
- 'On ouvre la clé "ODBC Data Sources" qui gères les entrées affichées dans le gestionnaire ODBC.
- 'On ajoute une valeur.
- 'On ferme la clé.
- lResult = RegCreateKey(HKEY_XX, REG_ODBCINI_DS, hKeyHandle)
- lResult = RegSetValueEx(hKeyHandle, DataSourceName, 0&, REG_SZ, ByVal DriverName, Len(DriverName))
- lResult = RegCloseKey(hKeyHandle)
- End Sub
Private Const REG_SZ = 1
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private Const HKEY_CURRENT_USER = &H80000001
Private Const REG_ODBCINI As String = "SOFTWARE\ODBC\ODBC.INI\"
Private Const REG_ODBCINI_DS As String = "SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources"
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Sub Set_ODBC_DSN(UserDSN As Boolean, _
DataSourceName As String, DatabaseName As String, _
Description As String, DriverPath As String, _
DriverName As String, Server As String)
Dim lResult As Long
Dim hKeyHandle As Long
Dim HKEY_XX As Long
HKEY_XX = IIf(UserDSN, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE)
'Création d'une nuvelle clé dans la base de registre.
lResult = RegCreateKey(HKEY_XX, REG_ODBCINI & DataSourceName, hKeyHandle)
'Valeurs de la clé.
lResult = RegSetValueEx(hKeyHandle, "Database", 0&, REG_SZ, ByVal DatabaseName, Len(DatabaseName))
lResult = RegSetValueEx(hKeyHandle, "Description", 0&, REG_SZ, ByVal Description, Len(Description))
lResult = RegSetValueEx(hKeyHandle, "Driver", 0&, REG_SZ, ByVal DriverPath, Len(DriverPath))
lResult = RegSetValueEx(hKeyHandle, "LastUser", 0&, REG_SZ, ByVal "user", Len("user"))
lResult = RegSetValueEx(hKeyHandle, "Server", 0&, REG_SZ, ByVal Server, Len(Server))
'On ferme la clé.
lResult = RegCloseKey(hKeyHandle)
'On ouvre la clé "ODBC Data Sources" qui gères les entrées affichées dans le gestionnaire ODBC.
'On ajoute une valeur.
'On ferme la clé.
lResult = RegCreateKey(HKEY_XX, REG_ODBCINI_DS, hKeyHandle)
lResult = RegSetValueEx(hKeyHandle, DataSourceName, 0&, REG_SZ, ByVal DriverName, Len(DriverName))
lResult = RegCloseKey(hKeyHandle)
End Sub
Conclusion
Attention: ce code écrit dans votre base de registre.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
ODBC [ par sepultur68a ]
Bonjour, alors voila, je vous expose tout d'abord mon code : baseprincipale = Test1 DoCmd.TransferDatabase acLink, "ODBC Database", _ "ODBC;DSN=Tes
ODBC API SQL à l'aide [ par capoueidiablo ]
Salut à tous,voila j'aurais besoin de récuperer des informations sur une base de donnée de n'importe qu'elle type, j'ai deja utilisé un grand nombre d
Avis aux pros du MySQL [ par tbbuim1 ]
Salut à tous, J'ai la version 4.1.8 de MySQL J'ai installé l'ODBC drivers pour windows MyODBC J'ai créé un DSN et je l'ai app
SQL server DSN [ par chaps ]
Je voudrait créer une DSN a partir de VB....Cette DSN pointe vers un serveur SQL!J'ai créer la fonction!Function AddDSNA2(Nom_du_DSN As String, Serv
Lancer une sauvegarde d'une base SQL serveur depuis VB [ par kirevam ]
Bonjour a tousJe cherche des infos pour effectuer une sauvegarde d'une base SQL Serveur depuis un programme vb6.Il semble qu'il faut utliser les fonct
probleme ODBC vb6 sqlserver2k [ par philo71 ]
Bonjour, Je développe une application VB6 et sql serveur 2000, j'utilise l'objet Ado pour la connection que je n'arrive pas a établir, voici
help problème avec sql et vbscript [ par remy34 ]
Bonjour je voudrais en fait rajouter les champs d'un formulaire lors de la validation de celui ci mais je n'y arrive pas voici mon code: Sub Envoyer(
ODBC 3146 [ par mimi14 ]
Bonjour, Excusez moi de vous opportuner avec cette question mais je ne trouve pas de solution sur internet et je ne suis pas un pro de SQL SERVEUR (v
[VB2005 FW2.0] Problème requète SQL [ par freddy1787 ]
Hi all,Je fais un programme en VB2005 Framework 2.0 et j'utilise une base de données SQL Server 2005.Lorque je lis les enregistrements j'utilise la sy
ERROR [42000] Mise a jour Odbc [ par ManuAntibes ]
Salut Je souhaite utiliser une connexion ODBC pour partager une base SQL Server 2005 Express.donc j'ai suivi ce tutohttp://fromelard.free.fr/Scripts/S
|
Derniers Blogs
[WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
LISTER KEYS.KEYLISTER KEYS.KEY par Onin42
Cliquez pour lire la suite par Onin42
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|