Mit Recordsets können Sie die Daten aus Tabellen und Abfragen für die Bearbeitung und Betrachtung unter VBA verfügbar machen. Dieser Artikel zeigt, wie Sie ein Recordset gezielt mit den benötigten Daten füllen, wie Sie diesen Datenbestand durchsuchen und wie Sie die Daten sortieren und filtern.
Beispieldatenbank
Die Beispiele dieses Artikels finden Sie in der Datenbank 1112_DAO_Recordsets_Suchen.mdb.
Es gibt diesmal ausschließlich Code-Beispiele. Wenn Sie diese ausprobieren möchten, legen Sie in einer Datenbank ein neues Standardmodul an, geben die Listings ein, platzieren die Einfügemarke irgendwo im Code der auszuführenden Routine und betätigen die Taste F5 (oder F8 für den Einzelschrittmodus).
Recordset gezielt füllen
Bereits mit der Angabe der Datenherkunft eines Recordsets beim öffnen mit der OpenRecordset-Funktion können Sie die benötigten Daten nach Belieben einschränken. Dabei gelten die gleichen Regeln, die auch für Abfragen gelten: Sie können sowohl gezielt eines oder mehrere Felder als auch einen oder mehrere Datensätze in das Recordset-Objekt einlesen. Dabei verwenden Sie natürlich eine oder mehrere Tabellen als Datenherkunft, die typischerweise miteinander verknüpft sind.
Zur Festlegung der Datenherkunft haben Sie die folgenden drei Möglichkeiten:
- Sie geben einfach den Namen einer Tabelle an. Das Recordset enthält alle Datensätze mit allen Feldern der angegebenen Tabelle.
- Sie definieren die Daten für das Recordset mithilfe einer Abfrage, in der Sie die Tabellen, die Felder und die Kriterien für die aufzunehmenden Daten festlegen.
- Sie legen einen SQL-Ausdruck fest, der angibt, welche Daten aus welchen Tabellen und Feldern angezeigt werden sollen – und dort legen Sie ebenfalls die Kriterien fest.
Später lernen Sie, dass man Recordsets auch auf Basis anderer Recordsets öffnen kann.
Tabellen und Felder vorauswählen
Wenn Sie nicht alle Felder aller Datensätze einer Tabelle im Recordset verfügbar möchten, verwenden Sie am einfachsten eine Abfrage, die nur die benötigten Felder zurückliefert. In dieser Abfrage können Sie auch mehrere, normalerweise miteinander verknüpfte Tabellen kombinieren und Felder aus mehreren Tabellen zusammenführen.
Wenn Sie in einem Recordset beispielsweise auf eine Liste von Personen samt Anrede zugreifen möchten, wobei die Anreden sich in einer Lookup-Tabelle befinden, mit der die Personen-Tabelle per Fremdschlüsselfeld verknüpft ist, legen Sie zuerst eine Abfrage wie in Bild 1 an.
Bild 1: Zusammenführen von Personen und Anreden für ein Recordset
Wenn Sie diese Daten nun ausgeben möchten, verwenden Sie eine Prozedur wie die folgende:
Unser exklusives Angebot für Dich!
(Das Abo ist jederzeit monatlich kündbar)
Hier geht’s weiter →Die ersten 4 Wochen kostenlos testen – voller Zugriff auf alle Artikel, vollständigen Code und Beispieldatenbanken. Kein Risiko: Wenn es nicht passt, kündigst Du einfach innerhalb der ersten vier Wochen.
Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?
Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?
In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.
Jetzt kostenloses Access-Audit anfordern →![Access [basics]](https://access-basics.de/wp-content/uploads/2021/02/logo400.png)
