Unsere Webseiten benötigen JavaScript. Dies scheint in Ihrem Browser jedoch deaktiviert zu sein.

News & Tipps zu Microsoft Access

Lesen Sie hier einige der besten Beiträge aus SmartTools Access Weekly sowie ausgewählte Inhalte anderer E-Mail-Newsletter von SmartTools Publishing rund um Microsoft Access.

Beitrag aus SmartTools Access Weekly

Primärschlüssel programmatisch ermitteln

Access 365 2024 2021 2019 2016 2013 2010

FRAGE Ich muss in meiner Access-Datenbank manchmal die vorhandenen Tabellen programmatisch analysieren. Bisher bin ich allerdings daran gescheitert, in meinen VBA-Prozeduren den Primärschlüssel (ich benötige Feldname und Feldtyp) aus einer bestimmten Tabelle auszulesen. Bei meiner Suche bin ich schon auf die MySys-Tabellen gestoßen, aber hier ist die gesuchte Information leider nicht immer mit angegeben. Haben Sie eine Lösung?

Diverse Anfragen

ANTWORT Verwenden Sie die folgende Funktion "GetPrimaryKey()":

Public Function GetPrimaryKey(strTable As String) As String
  Dim I&
  Dim strResult As String
  'Access/DAO
  Dim idx As DAO.Indexes

  On Error GoTo GPK_Error
  With CurrentDb
    Set idx = .TableDefs(strTable).Indexes
    For I = 0 To idx.Count - 1
      If idx(I).Primary Then
        strResult = Mid$(idx(I).Fields, 2)
        Exit For
      End If
    Next
  End With

GPK_Exit:
  GetPrimaryKey = strResult

Exit Function

GPK_Error:
  strResult = "???"
  Resume GPK_Exit

End Function

Aufgerufen wird die Funktion dann zum Beispiel so:

Dim strPK As String
.....
strPK = GetPrimaryKey("Kunden")

Das Ergebnis ist in diesem Fall beispielsweise "[Kunden-Code]".