Primärschlüsselfelder ermitteln

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.

Bitte geben Sie die Zahlenfolge in das nachfolgende Textfeld ein

Die mit einem * markierten Felder sind Pflichtfelder.

Aktuell im Blog
Onlinebanking mit Access

Es ist geschafft: Endlich ist das Buch Onlinebanking mit Access fertiggeschrieben. Das war... [mehr]

Direktzugriff auf Tabellen und Felder

Die IntelliSense-Erweiterung für Tabellen und Felder hat mir soviel Spaß gemacht, dass ich gleich... [mehr]

IntelliSense für Tabellen und Felder

Wenn Sie mit dem VBA-Editor arbeiten und dort gelegentlich SQL-Anweisungen eingeben, müssen Sie... [mehr]

Download Access und SQL Server

Erfahren Sie, welche Schritte zum Download des aktuellen Stands des Buchs "Access und SQL Server"... [mehr]

Bilder in Access 2013

Wer die Bibliothek mdlOGL0710 von Sascha Trowitzsch oder ein ähnliches Modul aus meinen... [mehr]

Dynamische Ribbons

Immer wieder fragen Leser, wie man Ribbon-Elemente wie etwa Schaltflächen in Abhängigkeit... [mehr]

Die Blogmaschine

Einen kleinen Blog zusätzlich zum Shop zu betreiben ist eine tolle Sache. Hier lassen sich... [mehr]

Wegwerfadressen für die Newsletteranmeldung

Die Verwendung von Wegwerf-Adressen für die Nutzung aller möglichen Online-Dienste nimmt... [mehr]

Access und Facebook

Facebook und Access - das ist eine der wenigen Kombinationen, die ich noch nicht in die Mangel... [mehr]

Access und SQL Server - das Projekt

Mein neues Buch Access und SQL Server (gemeinsam mit Bernd Jungbluth) geht in die Endphase. Wer... [mehr]