User Tools

Site Tools


vba:functions:fromset

[VBA] fromSet()

Ein Teilstring aus einem String-Set zu extrahieren ist nicht immer elegant zu lösen. Die Funktion fromSet() deckt genau das ab.

Version 1.1.0%%

Beschreibung

Die Funktion führt einen split() auf einen String aus. Aus dem Array wird der dem Index entsprechende Eintrag ausgegeben.

Sollte der Index Ausserhalb des Teilstringranges sein, so wird “” zurückgegeben

Siehe auch [VBA] findInSet().

Beispiele

? fromSet(2, "Hans,Peter,Marcel")
Marcel
? fromSet(0, "13;CHF;234'00;#01-01-2015#", ";")
13
 
? fromSet(2, "13;CHF;234'00;#01-01-2015#", ";")
234'00

Beispiel in einer Abfrage [code]=fromSet(0; “13;CHF;234'00;#01-01-2015#”; “;”)

Code

udf_fromset.bas
Attribute VB_Name = "udf_fromSet"
'-------------------------------------------------------------------------------
'File         : udf_fromSet.bas
'               Copyright mpl by ERB software
'               All rights reserved
'               http://wiki.yaslaw.info/dokuwiki/doku.php/vba/functions/fromset
'Environment  : VBA 2007 +
'Version      : 1.1.0
'Name         : fromSet
'Author       : Stefan Erb (ERS)
'               27.09.2019 - ERS - Dank einem Hinweis von knobbi38 iSet von String auf Variant gewechselt
'-------------------------------------------------------------------------------
Option Explicit
 
'/**
' * Splittet ein Feld in Einzelteile und gibt dann den entsprechenden Wert zurck
' * Ist sehr gut geeignet um aus Queries zuzugreifen
' *
' * @example: "cdef" = fromSet(1, "ab,cdef,gh,j,klm")
' *
' * @param  Int     Index   Wert der gewhlt werden soll. Index beginnt mit 0
' * @param  String  Text    Text der gesplittet werden soll
' * @param  String  delemiter   Trennzeichen um den Text zu splitten
' * @return String  Extrahiert Teil
' */
Public Function fromSet(ByVal iIndex As Long, ByVal iSet As Variant, Optional ByVal iDelemiter As String = ",") As String
    Dim items() As String:     items = Split(NZ(iSet), iDelemiter)
    If (LBound(items) <= iIndex And iIndex <= UBound(items)) Then fromSet = items(iIndex)
End Function
 
 
 
vba/functions/fromset.txt · Last modified: 27.09.2019 12:18:03 by yaslaw