Dieser Tipp zeigt, wie man eine Datenverbindung dauerhaft als Benutzer-DSN bzw. System-DSN per Code erstellen kann (Systemsteuerung - Verwaltung - ODBC-Datenquellen). Fügen Sie nachfolgenden Code in ein Modul ein: Option Explicit ' API-Deklaration Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" ( _ ByVal hwndParent As Long, _ ByVal fRequest As Long, _ ByVal lpszDriver As String, _ ByVal lpszAttributes As String) As Long ' Konstanten Private Const ODBC_ADD_DSN = 1 Private Const ODBC_ADD_SYS_DSN = 4 ' DSN-Verbindung erstellen Public Function AddDSN(ByVal sDSNName As String, _ ByVal sPath As String, _ Optional ByVal sDescription As String = "", _ Optional ByVal sDriverName As String = "Microsoft Access Driver (*.mdb)", _ Optional ByVal sUser As String = "", _ Optional ByVal sPwd As String = "", _ Optional ByVal bSystemDSN As Boolean = False) As Boolean Dim nResult As Long Dim nRequest As Long Dim sAttr As String ' Benutzer-DSN oder System-DSN? nRequest = IIf(bSystemDSN, ODBC_ADD_SYS_DSN, ODBC_ADD_DSN) If InStr(1, sDriverName, "SQL Server", vbTextCompare) > 0 Then ' SQL-Server Dim sServer As String ' Prüfen, ob Serverpfad angegeben... If InStr(sPath, "\") > 0 Then sServer = Left$(sPath, InStr(sPath, "\") - 1) sPath = Mid$(sPath, InStr(sPath, "\") + 1) Else ' Falls nicht, lokalen SQL-Server verwenden sServer = "(local)" End If sAttr = "DSN=" + sDSNName & Chr$(0) & _ "SERVER=" & sServer & Chr$(0) & _ "DATABASE=" & sPath & Chr$(0) & _ "TRUSTED_CONNECTION=True" & Chr$(0) & _ "DESCRIPTION=" + sDescription & Chr$(0) Else ' Verbindungs-Attribute sAttr = "DSN=" + sDSNName & Chr$(0) & _ "DBQ=" + sPath & Chr$(0) & _ "UID=" & sUser & Chr$(0) & _ "PWD=" & sPwd & Chr$(0) & _ "DESCRIPTION=" + sDescription & Chr$(0) End If ' DSN-Verbindung einrichten nResult = SQLConfigDataSource(0&, nRequest, sDriverName & Chr$(0), sAttr) AddDSN = (nResult = 1) End Function Nachfolgend eine Auflistung der wichtigsten Datenbank-Treiber, die im optionalen Parameter sDriverName angegeben werden können:
Beispiel 1: Dim bResult As Boolean bResult = AddDSN("MyAccessDSN", App.Path & "\KUNDEN.MDB") If Not bResult Then MsgBox "DSN konnte nicht erstellt werden!" Beispiel 2: Dim bResult As Boolean bResult = AddDSN("MySQLDSN", "KUNDEN", , "SQL Server", , , True) If Not bResult Then MsgBox "DSN konnte nicht erstellt werden!" Beispiel 3: Dim bResult As Boolean bResult = AddDSN("MySQLDSN", "SERVER\KUNDEN", , "SQL Server") If Not bResult Then MsgBox "DSN konnte nicht erstellt werden!" Dieser Tipp wurde bereits 25.760 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 sevAniGif (VB/VBA) Anzeigen von animierten GIF-Dateien Ab sofort lassen sich auch unter VB6 und VBA (Access ab Version 2000) animierte GIF-Grafiken anzeigen und abspielen, die entweder lokal auf dem System oder auf einem Webserver gespeichert sind. |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |