vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Datenbanken · SQL-Server   |   VB-Versionen: VB4, VB5, VB623.04.07
SQL-Serververbindung via DAO und DSN-Verbindung

Dieser Code zeigt, wie man per DAO auf eine SQL-Serverdatenbank zugreifen kann.

Autor:   Dieter OtterBewertung:  Views:  25.884 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Der Zugriff auf den MS-SQL Server via ADO ist vielen bekannt. Wie sieht es aber aus, wenn man noch den DAO-Datenbankzugriff verwendet?

In diesem Fall muss man beim Aufruf der "OpenDatabase"-Methode einen korrekten Connection-String mit Angabe eines DSN-Verbindungseintrags angeben:

Dim sConn As String
sConn = "ODBC;DSN=DSN_NAME;uid=sa;pwd=password"
Set oDB = DBEngine.OpenDatabase("DSN_NAME", dbDriverNoPrompt, False, sConn)

Für den Zugriff auf den MS-SQL Server via DAO muss also immer ein DSN-Verbindungseintrag im ODBC-Datenquellen-Manager existieren. Dieser kann natürlich manuell erstellt werden, was jedoch nicht immer dem Anwender zugemutet werden kann.

Über die RegisterDatabase-Methode von DAO lässt sich der DSN-Verbindungseintrag auch bequem per Code erstellen. Existiert der Eintrag bereits, wird dieser mit den neuen Parameter aktualisiert, andernfalls wird der Eintrag neu erstellt.

' DSN-Verbindungseintrag erstellen/aktualisieren
Public Function MakeDSNForSQLServer(ByVal sDSNName As String, _
  ByVal sServer As String, _
  ByVal sDatabase As String, _
  ByVal sDescription As String) As Boolean
 
  On Error Resume Next
  Err.Clear
  DBEngine.RegisterDatabase sDSNName, "SQL Server", True, _
    "Database=" & sDatabase & vbCr & _
    "Description=" & sDescription & vbCr & _
    "Server=" & sServer
 
  MakeDSNForSQLServer = (Err.Number = 0)
  On Error Goto 0
End Function

Beispiel für den Aufruf:

Dim sDSNName As String
Dim sServer As String
Dim sDatabase As String
Dim sDescription As String
Dim oDB As DAO.Database
 
' Name der DSN-Verbindung
sDSNName = "TEST"
 
' SQL-Server
sServer = Environ$("COMPUTERNAME") & "\SQL2000"
 
' Name der SQL-Datenbank
sDatabase = "TESTDB"
 
' Beschreibung der DSN-Verbindung
sDescription = "Testverbindung zum SQL-Server"
 
' DSN-Verbindungseintrag erstellen/aktualisieren
If MakeDSNForSQLServer(sDSNName, sServer, sDatabase, sDescription) Then
  ' Verbindung über DSN-Eintrag herstellen
  Dim sConn As String
  sConn = "ODBC;DSN=" & sDSNName & ";uid=sa;pwd=Password"
  Set oDB = DBEngine.OpenDatabase(sDSNName, dbDriverNoPrompt, False, sConn)
  ...
 
Else
  MsgBox "Fehler beim Einrichten/Aktualisieren der DSN-Verbindung" & vbCrLf & _
    CStr(Err.Number) & " " & Err.Description, vbExclamation + vbOKOnly
End If



Anzeige

Kauftipp Unser Dauerbrenner!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.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


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.