PDA

Vollständige Version anzeigen : Datenbankname der Tabelle


67Byte
26.10.2003, 06:12
Guten Morgen an ALLE!

Bin gerade dabei meine Updatefunction in bestehende Tabellen zu integrieren. Mein Problem:
Habe mir eine Tabelle mit den Feldern angelegt, die hinzugefügt werden sollen und hänge nun.

Wie ermittelt man den Datenbanknamen der verknüpften Tabelle?


Vielleicht habt Ihr ja auch weitere Informationen wie man am besten die Updatefunction im Backend integriert?

racoon0506
26.10.2003, 13:05
du kannst den Pfad und den Datenbankname aus der MSysObjects auslesen.
zum Durchlaufen aller Tabellen der aktiven DB geht das z.B. so (stark vereinfacht!)

Dim tdf As TableDef, fremd As String
For Each tdf In CurrentDb.TableDefs
With tdf
fremd = Nz(DLookup("[Database]", "MSysObjects", "[NAME]='" & .Name & "'"), "")
If fremd <> "" Then
MsgBox "Die Tabelle " & .Name & " wurde aus Datenbank " & fremd & " verknüpft!"
End If
End With
Next
dafür muss ab A00 die DAO3.6 aktiviert sein!

Aquarii
26.10.2003, 13:09
Hallo 67 byte,

verwende fogende Funktion, um den Datenbanknamen der verknüpften Tabelle zu erhalten:

Function GetLinkedDBName(TableName As String)
Dim db As DAO.Database, Ret
On Error GoTo DBNameErr
Set db = CurrentDb()
Ret = db.TableDefs(TableName).Connect
GetLinkedDBName = Right(Ret, Len(Ret) - (InStr _
(1, Ret, "DATABASE=") + 8))
Exit Function

DBNameErr:
GetLinkedDBName = 0
End Function

Beachte: Verweis auf die DAO-Bibliothek setzen

Der Aufruf erfolgt dann z.B. so:

Sub test()
Dim strDB As String
strDB = GetLinkedDBName("tabelle1")
MsgBox strDB
End Sub



Nachtrag: Auch Sonntags finden sich gute Geister, die einfach zu schnell für mich sind, gell Jan ;)

racoon0506
26.10.2003, 13:15
@Heiko
....jepp, sonst ist Arne meist schneller als ich!!!!
ABER! Deine Version sieht doch viel schöner aus!