Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
Die Bibliothek Microsoft Scripting Runtime liefert neben den Objekten für den Umgang mit Laufwerken, Verzeichnissen, Dateien und Textstreams noch ein weiteres Objekt an, nämlich das Dictionary-Objekt. Dabei handelt es sich um eine Alternative zur Collection-Auflistung der VBA-Bibliothek. Das Dictionary-Objekt liefert allerdings ein paar zusätzliche Features. Dieser Artikel zeigt, wie Sie mit dem Dictionary-Objekt programmieren und wozu Sie es nutzen können.
Beispieldatenbank
Die Beispiele dieses Artikels finden Sie in der Datenbank 1902_Dictionary.accdb.
Andere Auflistungsarten
Es gibt neben dem Dictionary-Objekt andere Möglichkeiten, um Auflistungen von Elementen oder Informationen unterzubringen. Da wäre zum Beispiel das Array, über das wir beispielsweise im Artikel Programmieren mit Arrays berichtet haben. Und die ebenfalls in VBA eingebaute Collectioon haben wir im Artikel Programmieren mit Collections ausführlich beschrieben.
Verweis auf die Microsoft Scripting Runtime
Wenn Sie das Dictionary-Objekt der Bibliothek Microsoft Scripting Runtime nutzen wollen, können Sie dieses per Late Binding oder Early Binding tun. Wenn Sie die Early Binding-Variante verwenden wollen, gehen Sie wie folgt vor: Fügen wir dem VBA-Projekt der Datenbank einen Verweis auf die entsprechende Bibliothek hinzu, und zwar im Verweise-Dialog (VBA-Editor, Menüpunkt Extras|Verweise) – siehe Bild 1. Dann können Sie die Variable für das Dictionary-Objekt mit dem entsprechenden Typ deklarieren und auch mit dem Schlüsselwort New eine neue Instanz dieser Klasse erstellen:
Bild 1: Verweis auf die Bibliothek Microsoft Scripting Runtime
Dim objDictionary As Dictionary Set objDictionary = New Dictionary
Wenn Sie aus irgendwelchen Gründen keinen Verweis setzen wollen, können Sie auch mit Late Binding arbeiten. In diesem Fall verwenden Sie die folgenden Anweisungen statt der oben verwendeten:
Dim objDictionary As Object Set objDictionary = CreateObject("Scripting.Dictionary")
Das Dictionary-Objekt
Das Dictionary-Objekt enthält die folgenden Elemente:
- Add: Fügt ein neues Element hinzu. Erwartet den Schlüssel und den Wert für das neue Element als Parameter.
- CompareMode: Modus für das Vergleichen der Schlüsselwerte. Es gibt die Werte vbTextCompare (unterscheidet nicht zwischen Groß- und Kleinschreibung) und vbBinaryCompare (unterscheidet zwischen Groß- und Kleinschreibung).
- Count: Liefert die Anzahl der Einträge im Dictionary-Objekt.
- Exists: Prüft, ob das Element mit dem angegebenen Schlüssel existiert.
- Item: Erlaubt den Zugriff über den Schlüssel des jeweiligen Elements.
- Items: Auflistung aller Werte, die über den Index angesteuert werden kann.
- Key: Dient zum Zuweisen eines neuen Schlüssels für ein vorhandenes Element.
- Keys: Auflistung aller Schlüssel, die über den Index angesteuert werden kann.
- Remove: Entfernt den Eintrag mit dem angegebenen Schlüssel aus dem Dictionary-Objekt.
- RemoveAll: Entfernt alle Einträge aus dem Dictionary-Objekt.
Erstellen und Füllen eines Dictionary-Objekts
Zum Hinzufügen eines Eintrags zu einem Dictionary-Objekts verwenden Sie standardmäßig die Add-Methode. Diese gibt über die zur Verfügung stehenden Parameter, die Sie nach Eingabe der Add-Methode etwa per IntelliSense einsehen können, die Struktur eines Eintrags vor (siehe Bild 2).
Bild 2: Nutzen von IntelliSense mit dem Dictionary-Objekt
Dieser enthält also ein Key– und ein Item-Element. Für Key geben Sie einen Namen oder einen Wert an, über den Sie den Eintrag später referenzieren wollen.
Wenn Sie also etwa eine Reihe von Informationen über einen Benutzer in einem Dictionary-Objekt speichern wollen, beginnen Sie mit dem Key mit der Bezeichnung Vorname und weisen dem Element mit diesem Key den entsprechenden Wert zu, beispielsweise André:
Dim objDictionary As Dictionary Set objDictionary = New Dictionary With objDictionary .Add "Vorname", "André" End With
öffentliches Dictionary-Objekt deklarieren
Damit wir mit dem Dictionary, dessen Daten gegebenenfalls für die komplette Sitzung mit der Access-Anwendung zur Verfügung stehen sollen, experimentieren können, deklarieren wir es außerhalb einer Prozedur in einem Standardmodul als öffentliche Variable:
Public objDictionary As Dictionary
Dann erstellen wir eine Instanz der Dictionary-Klasse und weisen diese unserer Objektvariablen zu:
Set objDictionary = New Dictionary
Dies können Sie in einer Prozedur erledigen, aber auch etwa über den Direktbereich des VBA-Editors.
Eintrag hinzufügen mit der Add-Methode
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
Testzugang
eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel
diesen und alle anderen Artikel mit dem Jahresabo