Wenn Sie ein Abonnement des Magazins 'Access im Unternehmen' besitzen, können Sie sich anmelden und den kompletten Artikel lesen.
Anderenfalls können Sie das Abonnement hier im Shop erwerben.
Primärschlüsselfelder ermitteln
Für die eine oder andere Anforderung benötigen Sie das Primärschlüsselfeld beziehungsweise die Primärschlüsselfelder einer Tabelle. Dieser Beitrag liefert zwei Funktionen, mit denen dies möglich ist.
Einzelnes Primärschlüsselfeld ermitteln
Gelegentlich wollen Sie das Primärschlüsselfeld einer Tabelle ermitteln. Dies erledigen Sie mit den Methoden der DAO-Bibliothek. Die folgende Funktion namens GetSinglePrimaryKey ermittelt einen einzelnen Primärschlüssel.
Sie funktioniert nicht für Tabellen mit zusammengesetzten Primärschlüsseln. Die Funktion erwartet den Namen der zu untersuchenden Tabelle als Parameter und liefert den Namen des Primärschlüsselfeldes zurück.
Sie erstellt ein TableDef-Objekt auf Basis der übergebenen Tabelle und durchläuft alle Elemente der Indexes-Auflistung dieser Tabelle. Dabei prüft sie, ob die Eigenschaft Primary den Wert True hat. In diesem Fall handelt es sich um einen Primärschlüssel-Index. Wenn dieser Index nur ein Feld der Tabelle enthält, trägt die Funktion den Namen dieses Feldes als Rückgabewert in die Variable GetPrimaryKey ein (s. Listing 1).
Public Function GetSinglePrimaryKey(strTable As String) As String
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim idx As DAO.Index
Set db = CurrentDb
Set tdf = db.TableDefs(strTable)
For Each idx In tdf.Indexes
If idx.Primary Then
If idx.Fields.Count = 1 Then
GetPrimaryKey = idx.Fields(0).Name
End If
Exit For
End If
Next idx
End Function
Listing 1: Ermitteln des Primärschlüssels einer Tabelle
Alle Primärschlüssel ermitteln
Dies war die Leseprobe dieses Artikels.
Melden Sie sich an, um auf den vollständigen Artikel zuzugreifen.