Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
Für die Arbeit mit Arrays gibt es zwei interessante Funktionen, die Ihnen möglicherweise einige manuelle zu programmierende Schritte abnehmen. Join erlaubt es, die Inhalte eines eindimensionalen Arrays in einer einzigen Zeichenkette zusammenzusetzen, wobei Sie noch angeben können, ob die einzelnen Elemente durch ein oder mehrere Zeichen getrennt werden sollen. Und die Split-Funktion erstellt ein neues Array auf Basis einer in einer Zeichenketten enthaltenen Auflistung von Texten. Einzige Bedingung: Es muss ein einheitliches Trennzeichen zwischen den Einträgen vorliegen.
Beispieldatenbank
Die Beispiele dieses Artikels finden Sie in der Datenbank 1406_ArraysMitSplitUndJoin.mdb.
Die Join-Funktion
Die Join-Funktion erwartet zwei Parameter: den Variablennamen des Arrays sowie als optionalen Parameter die Zeichenkette, die hinter jedem Element angehängt werden soll. Sie können diese Funktion auf die Schnelle im Direktfenster des VBA-Editors testen (zu aktivieren mit der Tastenkombination Strg + G):
Join(Array("Wert1","Wert2","Wert3"),"|") Wert1|Wert2|Wert3
In diesem Beispiel setzt die Array-Funktion aus den drei Zeichenketten Wert1, Wert2 und Wert3 ein Array zusammen. Dieses nimmt die Join-Funktion gleich wieder auseinander und fügt die einzelnen Elemente zu einer einzigen Zeichenkette zusammen. Dabei verwendet sie die mit dem zweiten Parameter übergebene Zeichenkette, hier das Pipe-Zeichen (|) als Trennzeichen, das zwischen die einzelnen Elemente geschrieben wird.
Ein aufwendigeres Beispiel finden Sie in Listing 1. Hier sollen alle Artikelnamen durch Kommata voneinander getrennt im Direktfenster ausgegeben werden. Dazu öffnet die Prozedur zunächst eine Recordset-Gruppe auf Basis der Tabelle tblArtikel, wobei jedoch nur das Feld Artikel berücksichtigt wird
Public Sub Beispiel_Join() Dim db As DAO.Database Dim rst As DAO.Recordset Dim strArtikel() As String Dim strArtikelliste As String Dim lngAnzahl As Long Set db = CurrentDb Set rst = db.OpenRecordset("SELECT Artikel FROM tblArtikel", dbOpenDynaset) rst.MoveLast lngAnzahl = rst.RecordCount ReDim strArtikel(lngAnzahl - 1) rst.MoveFirst Do While Not rst.EOF strArtikel(rst.AbsolutePosition) = rst!Artikel rst.MoveNext Loop strArtikelliste = Join(strArtikel, ", ") MsgBox strArtikelliste End Sub
Listing 1: Zeichenkette aus den Elementen eines Array erstellen
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