Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 2/2010.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Laden Sie Daten temporär in ein Recordset-Objekt und arbeiten Sie damit wie mit einem richtigen Recordset.

Techniken

ADODB, Recordsets

Voraussetzungen

Access 2002 und höher

Beispieldateien

TemporaereDatensatzgruppen.mdb

Shortlink

www.access-im-unternehmen.de/711

Temporäre Datensatzgruppen

André Minhorst, Duisburg

Als Access'ler sind Sie es gewohnt, Daten in strukturierter Form in Tabellen zu speichern. Manchmal braucht man diese Daten aber nur ganz kurz, beispielsweise um diese aus einer Textdatei, einem XML-Dokument oder aus anderen Quellen einzulesen und sie zu sortieren oder zu filtern oder in einem Formular anzuzeigen. Dafür extra eine Tabelle zu erstellen, wäre in vielen Fällen übertrieben. Abhilfe schafft eine temporäre Datensatzgruppe (temporary recordset), die Sie leicht per ADO erstellen, füllen und wieder entsorgen.

Wozu temporäre Datensatzgruppen?

Für den Einsatz einer temporären Datensatzgruppe kommen alle Situationen infrage, bei denen Daten zwar nicht dauerhaft gespeichert werden, aber in strukturierter Form vorliegen müssen. Die hier vorliegende Struktur ist ein Recordset, das beliebig viele Daten enthalten kann und die üblichen Vorteile des Recordset-Objekts bietet:

  • Filtern und sortieren der enthaltenen Daten
  • Anzeige der Daten in Formularen oder Berichten
  • Anzeige der Daten in Steuerelementen wie Kombinations- oder Listenfeldern

Recordsets auf Basis bestehender Tabellen oder Abfragen können die beiden Bibliotheken für den Datenzugriff, DAO und ADODB, erstellen. Temporäre Recordsets erzeugen Sie aber nur mit ADODB, DAO bietet diese Möglichkeit nicht. Während laut aktuellem Stand DAO die bevorzugte Datenzugriffstechnik für Access-Anwendungen ist, hat ADODB wegen einiger spezieller Funktionen durchaus noch eine Daseinsberechtigung. Neben den hier vorgestellten temporären Datensatzgruppen sind das die Disconnected Recordsets (siehe auch den gleichnamigen Beitrag unter www.access-im-unternehmen.de/437).

Datenquellen für temporäre Datensatzgruppen

In vielen Fällen soll eine Funktion einer Anwendung etwas mit externen Daten durchführen, die beispielsweise aus einer Excel-Datei, einer Textdatei oder einem XML-Dokument stammen. Sie können diese Daten dazu in einer temporären Tabelle speichern, in ein Array, ein Collection- oder ein Dictionary-Objekt füllen oder auch eine temporäre Datensatzgruppe verwenden.

Letztere hat gegenüber der temporären Tabelle den Vorteil, dass Sie diese nicht extra anlegen müssen, außerdem blähen Sie mit einer temporären Datensatzgruppe die Datenbank nicht auf, wie es beim Anlegen, Füllen und Löschen einer temporären Tabelle der Fall ist. Gegenüber dem Array, dem Dictionary oder der Collection (mehr zu diesen Möglichkeiten erfahren Sie im Beitrag Arrays, Collections und Dictionaries, www.access-im-unternehmen.de/640) haben Sie den Vorteil, dass Sie komfortabel über die Recordset-Eigenschaften und -Methoden von ADODB auf die Daten zugreifen können.

Erstellen einer temporären Datensatzgruppe

Das A und O beim Einsatz einer temporären Datensatzgruppe ist deren Erstellung. Dazu definieren Sie zunächst eine entsprechende Objektvariable (nachdem Sie sichergestellt haben, dass Ihr VBA-Projekt einen Verweis auf die Microsoft ActiveX Data Objects 2.x Library enthält) und erzeugen das entsprechende Objekt:

Dim rst As ADODB.Recordset

Set rst = New ADODB.Recordset

Danach können Sie schon mit dem Hinzufügen der Felder und ihrer Eigenschaften beginnen. Dazu verwenden Sie die Append-Anweisung der Fields-Auflistung des Recordset-Objekts, die folgende Parameter besitzt:

  • Name: Feldname
  • Type: Felddatentyp
  • DefinedSize: Feldgröße
  • Attrib: zusätzliche Attribute für das Feld
  • FieldValue: Wert des Feldes

Den Feldnamen können Sie entsprechend der gängigen Konventionen festlegen. Für den Felddatentyp geben Sie eine der folgenden Konstanten an, die den Felddatentypen aus dem Tabellenentwurf entsprechen:

  • Zahl (ReplikationID): adGUID (72)
  • Zahl (Integer): adSmallInt (2)
  • Zahl (LongInteger): adInteger (3)
  • Zahl (Single): adSingle (4)
  • Zahl (Double): adDouble (5)
  • Währung: adCurrency (6)
  • Datum: adDate (7)
  • Ja/Nein: adBoolean (11)
  • Zahl (Byte): adUnsignedTinyInt (17)
  • Zahl (Dezimal): adNumeric (131)
  • Text: adVarWChar (202)
  • Memo: adLongVarWChar (203)
  • Hyperlink: adLongVarWChar (203)
  • OLEObjekt: adLongVarBinary (205)

Diese Werte haben wir durch Anlegen von Feldern entsprechender Datentypen und Auslesen der Eigenschaft Type des Field-Objekts gewonnen. Der Parameter DefinedSize und somit die Feldgröße benötigten Sie nur für einige Felddatentypen wie etwa das Textfeld, wo Sie einen Wert bis maximal 255 einstellen können. Unter Attrib geben Sie die Attribute der Enumeration FieldAttributeEnum ein, die aber in einem temporären Recordset keine Rolle spielen. Schließlich können Sie mit FieldValue gleich den Wert des Felds angeben. Dieses Feature ist interessant, wenn Sie nur einen Datensatz zum Recordset hinzufügen möchten. Anderenfalls füllen Sie das Recordset einfach im Anschluss an die Erstellung.

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Verwandte Beiträge:

Datenbankzugriff mit ADO

Listenfeld und Details in einem Formular

Zugriff auf Daten in Formularen und Steuerelementen

Performanter Webzugriff auf MySQL-Datenbanken

Arrays, Collections und Dictionarys

Formulare im Blickpunkt

Modale Dialoge mal anders

Zugriff auf Formulare

Standard-Lookupformulare

Unterformulare: Daten anlegen und löschen

Lookup-Daten verwalten

Listenfelder von A-Z

Arbeiten mit den DataGrid-Steuerelement

© 2003-2015 André Minhorst Alle Rechte vorbehalten.