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
 
 Set tdf = Nothing
 Set db = Nothing
 
End Function

Aufruf

 MsgBox GetJetDBFromConnect("MeineTabelle")

Alternative 1

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

Public Function GetDBName(TblName)
  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