window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Programmieren mit Collections

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

In einem früheren Artikel haben Sie bereits den Umgang mit Arrays kennengelernt. Damit können Sie ein- oder mehrdimensionale Felder von Daten verwalten. Nun schauen wir uns eine weitere Möglichkeit an, um Daten in einer Art Feld unterzubringen: das Collection-Objekt. Erfahren Sie, wie Sie ein solches Objekt mit Daten füllen, diese abrufen und welche Unterschiede es zum herkömmlichen Array gibt.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1405_Collections.mdb.

Collections erstellen

Im Gegensatz zu einem Array, dass einen der Basisdatentypen wie beispielsweise String oder Integer als Datentyp verwenden kann und dann auf diesen Typ begrenzt ist, ist eine Collection ein eigenes Objekt. Dementsprechend deklarieren Sie dieses zunächst etwa wie folgt:

Dim colKunden As Collection

Der Zugriff auf die Eigenschaften und Methoden des Objekts gelingt somit noch längst nicht – die Ausgabe der Anzahl der enthaltenen Elemente mit der Count-Eigenschaft, die ja aktuell 0 betragen sollte, führt gleich zu einem Fehler (siehe Bild 1). Der Grund ist einfach: Sie müssen das Collection-Objekt erst noch instanzieren.

Fehler beim Zugriff auf ein nicht instanziertes Collection-Objekt

Bild 1: Fehler beim Zugriff auf ein nicht instanziertes Collection-Objekt

Dies können Sie in der gleichen Zeile erledigen, welche auch das Objekt deklariert:

Dim colKunden As New Collection

Wir haben es allerdings gern etwas kontrollierter und zu dem Zeitpunkt, zu dem wir das Objekt benötigen. Daher instanzieren wir es in einer eigenen Zeile mit der New-Anweisung und der anschließenden Zuweisung zu der dafür deklarierten Objektvariablen colKunden:

Dim colKunden As Collection
Set colKunden = New Collection
Debug.Print colKunden.Count

Keine Dimensionierung

Im Gegensatz zu einem Array, dass Sie ja entweder gleich beim Deklarieren dimensionieren oder dynamisch während des Aufbaus des Arrays mit der ReDim-Anweisung, brauchen Sie ein Array nicht zu dimensionieren. “Dimensionieren” bedeutet in diesen Zusammenhang, dass Sie nicht zuvor festlegen müssen, wieviele Elemente das Objekt einmal enthalten soll.

Das Collection-Objekt bietet die folgenden Methoden und Eigenschaften an:

  • Add: Fügt ein Element zur Collection hinzu. Die Methode erwartet zumindest den Parameter Item und somit den hinzuzufügenden Wert und bietet drei weitere optionale Paramter an: Key, Before und After.
  • Count: Gibt die Anzahl der aktuell im Collection-Objekt enthaltenen Elemente aus.
  • Item: Erlaubt den gezielten Zugriff auf eines der Elemente über den Index oder über den Key.
  • Remove: Entfernt ein Element der Collection. Das zu entfernende Objekt wird über den Parameter Item angegeben – mehr dazu weiter unten.

Einfaches Element zur Collection hinzufügen

Die einfachste Art, ein Element zu einer Collection hinzuzufügen, ist die Angabe des Elements als ersten Parameter der Add-Methode:

colKunden.Add "Kunde 1"

Auf diese Weise fügen Sie ein oder mehrere Elemente zur Collection hinzu.

Zugriff über den Index

Um die Elemente abzufragen, die Sie auf diese Weise hinzugefügt haben, greifen Sie über die Item-Eigenschaft auf das Element mit dem entsprechenden Index zu.

Der Index ist 1-basiert, sodass Sie den mit der obigen Anweisung hinzugefügten Eintrag mit folgender Anweisung auslesen können:

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

Schreibe einen Kommentar