Beitrag aus SmartTools Access Weekly
AutoWert des aktuellen Datensatzes abfragen
Access 365 2021 2019 2016 2013 2010
FRAGE In meiner Access-Datenbank stehe ich vor einer ganz speziellen Aufgabe. Ich verwende natürlich einen AutoWert in einer Tabelle, um eine eindeutige ID zu erzeugen. Diese Information ist für den Anwender allerdings uninteressant, so dass ich kein entsprechendes Feld in das Formular eingefügt habe. In einer VBA-Prozedur benötige ich jetzt allerdings die ID. Wie kann ich also den (AutoWert) des aktuellen Datensatzes per Code abfragen?
Diverse Anfragen
ANTWORT Die einfachste Form einer Abfrage der Art
Dim lngID As Long
lngID = Me.ID
funktioniert nur, wenn das Feld im Formular vorhanden ist. Soll der Anwender es nicht sehen können, stellen Sie dessen Eigenschaft "Sichtbar" auf "Nein". Ansonsten müssen Sie den Umweg über ein Recordset gehen:
Dim rs As DAO.Recordset
Dim lngID As Long
Set rs = Me.RecordsetClone
rs.Bookmark = Me.Bookmark
lngID = rs("ID")
Set rs = Nothing
Hier wird zunächst per "RecordsetClone" eine Kopie der Datenbasis des Formulars als Recordset "rs" erstellt. Dieses Recordset positioniert man über die Eigenschaft "Bookmark" auf den aktuell im Formular angezeigten Datensatz. Anschließend kann auf das betreffende ID-Feld im Recordset zugegriffen werden, ohne dass dieses Feld im Formular vorhanden sein muss. Für den Einsatz dieser Lösung muss in der VBA-Entwicklungsumgebung über Extras-Verweise eine Referenz auf "Microsoft Office Access x.0 Database Engine Object Library" eingerichtet sein.