Primärschlüsselfelder von Tabellen ermitteln
Veröffentlicht am 30.12.2003
Über die Indexes Auflistung läßt sich der Primärschlüssel schnell ermitteln.
Viele Funktionen zum Suchen nach bestimmten Datensätzen benötigen Informationen über das Primärschlüsselfeld einer bestimmten Tabelle.
Die folgende Function-Prozedur erwartet beim Start den Namen einer Tabelle der aktuellen Datenbank. Die Tabelle muss hierbei im ACCESS-Format vorliegen. Das Ergebnis ist der Feldname des Primärschlüssels. Sollte der Primärschlüssel aus mehreren Feldern zusammengesetzt sein, gibt die Prozedur eine Werteliste zurück, bei der die einzelnen Feldnamen durch Semikola getrennt aufgelistet sind.
Function Primärschlüssel(Tabellenname As String) As String
Dim DB As DAO.Database
Dim TableDefObj As DAO.TableDef
Dim IndexOb As DAO.Index
Dim FieldObj As Field
Dim Result As String
On Error GoTo Err
Set DB = CurrentDb()
Set TableDefObj In TableDefs(Tabellenname)
For Each IndexObj in TableDefObj.Indexes
If IndexObj.Primary Then
For Each FieldObj In IndexObj.Fields
Result = Result & FieldObj.Name ";"
Next FielObj
If Len(Result) <> 0 Then
Result = Left(Result, Len(Result) - 1)
Primärschlüssel = Result
Exit Function
EndIf
EndIf
Next IndexObj
Primärschlüssel = ""
Exit Function
Err:
Primärschlüssel = ""
End Function
End Function