Arrays mit Split und Join

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

Schreibe einen Kommentar