VBA Tipp: Namen und Pfad der verknüpften Datenbank ermitteln

Aus DBWiki
Wechseln zu: Navigation, Suche

Aufgabenstellung

Ich möchte wissen, wo die Datenbank einer verknüpften Tabelle liegt, also z.B. auf welchem Netzwerkpfad meine Backend-Datenbank angelegt ist.

Lösung

Das geht per DAO so:

Public Function GetJetDBFromConnect(TblName)
 
   'Quelle: http://www.dbwiki.net/
 
   Dim db  As DAO.Database
   Dim tdf As DAO.TableDef
   Dim tmp As String
 
   Set db = CurrentDb
   Set tdf = db.TableDefs(TblName)
 
   tmp = tdf.Connect
   GetJetDBFromConnect = ""
 
   If Mid$(tmp, 1, 10) = ";DATABASE=" Then
      GetJetDBFromConnect = Mid$(tmp, 11)
   End If
 
End Function

Aufruf

   MsgBox GetJetDBFromConnect("MeineTabelle")

Alternative 1

Man kann die Verknüpfung auch aus der Systemtabelle MSysObjects auslesen:

Public Function GetDBName(TblName As String)
   GetDBName = DLookup("Database", "MSysObjects", "Name='" & TblName & "'")
End Function

Alternative 2

Pfad und Dateiname des Backends ohne Angabe einer bestimmten Tabelle auslesen:

Public Function PfadBackend()
 
   'Pfad und Dateiname des Backends auslesen. Es muß mindestens eine verknüpfte Tabelle existieren.
 
   'Quelle: http://www.dbwiki.net/
 
   PfadBackend = DLookup("Database", "MSysObjects", "Type = 6")
 
End Function

Aufruf

   MsgBox PfadBackend