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

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.