Verknüpfte Tabellen ermitteln

Wenn Sie herausfinden wollen, welche Tabellen über ein Fremdschlüsselfeld mit einer gegebenen Tabelle verknüpft sind, benötigen Sie ein paar Zeilen DAO-Code. Die hier vorgestellte Funktion erwartet den Namen der zu untersuchenden Tabelle und enthält zwei weitere Parameter, die zur Rückgabe der Ergebnisse vorgesehen sind.

Da wir nicht nur die verknüpften Tabellen, sondern auch noch die Namen der Fremdschlüsselfelder der Tabellen ermitteln wollen, können wir hier nicht mit einem einfachen Rückgabewert arbeiten, sondern benötigen eben diese zwei Rückgabeparameter.

Beide Parameter sind als Arrays ausgelegt, da ja auch einmal mehrere Tabellen über ein Fremdschlüsselfeld mit einer Tabelle verknüpft sein können.

In diesem Fall durchläuft die Funktion alle Elemente der Relations-Auflistung der Datenbank. Dabei vergleicht sie den Namen der Tabelle der einen Seite der Relation mit dem Namen der zu untersuchenden Tabelle. Stimmen beide überein, folgen weitere Schritte.

Die Funktion erweitert die Arrays dann um ein Element und trägt den Namen der verknüpften Tabelle (aus der Eigenschaft ForeignTable des Relation-Objekts) und den Namen des Fremdschlüsselfeldes (aus der Eigenschaft ForeignName) als neue Elemente in die beiden Arrays strVerknuepfteTabellen und strFremdschluesselfelder ein:

Public Function VerknuepfteTabellen(strTabelle As String, _
         strVerknuepfteTabellen() As String, _
         strFremdschluesselfelder() As String)
     Dim db As DAO.Database
     Dim rel As DAO.Relation
     Dim i As Integer
     Set db = CurrentDb
     For Each rel In db.Relations
         If rel.Table = strTabelle Then
             ReDim Preserve strVerknuepfteTabellen(i)
             ReDim Preserve strFremdschluesselfelder(i)
             strVerknuepfteTabellen(i) = rel.ForeignTable
             strFremdschluesselfelder(i) = _
                 rel.Fields(0).ForeignName
             i = i + 1
         End If
     Next rel
     Set db = Nothing
End Function

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

Workplace

Jahresabonnement TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar