User Tools

Site Tools


vba:functions:index

This is an old revision of the document!


Functions

functions.bas

Eine Sammlung von Funktionen die ich mehrheitlich in VBA MS Access verwende. Sie sollten aber auch in anderen VBA-Scripten funktionieren. Getestet hab ich dies allerdings nicht. Für die Access-Spezifischen Funktionen gibts eine eigene Seite ([VBA] [Access] Functions) und auch für Arrays habe ich eine Sammlung ([VBA] Array Functions).

die Sammlung ist auch für mich, damit ich in verschiedenen Projekten auf meine Funktionen Zugriff habe. Darum ist auch nicht alles Dokumentiert und nicht jede Funktion macht per se Sinn.

Die Funktionen auf dieser Seite werden laufend in eigene Seiten, zusammen mit genaueren Beschreibungen und Beispielen, ausgelagert

Funktionen mit eigener Seite

  • [VBA] activeWinUser()
    VBA activeWinUser Gibt den Usernamen des aktiven Windowusers zur ck. Downloas udf activeWinUser.bas Beispiel Dim user As String user activeWinUser Code Attribute VB Name udf activeWinUser '------------------------------------------------------------------------------- 'File udf activeWinUser...more
  • [VBA] andB()
    VBA andB F hrt einen Bitvergleich durch und gibt ein Boolean zur ck. Version . . Download udf andb.bas V- . . Beschreibung Um einen wirklich Aussagekr ftigen Bit-Vergleich bei...more
  • [VBA] array_walk()
    VBA array walk Eine Callback-Funktion auf jedes Element eines Arrays anwenden Siehe auch die durch VBA sprintf vsprintf erweiterte Funktion array walkf Definition Public Function array walk ByVal iFuncName As...more
  • [VBA] arrayRemoveItem()
    VBA arrayRemoveItem Entfernt ein einzelnes Item aus einem Array Version . . - . . Download udf arrayremoveitem.bas V- . . Beispiele d arrayRemoveItem array a b c Variant String...more
  • [VBA] arrayShift()
    VBA arrayShift Analog zu array shift aus PHP. Der erste Wert wird zur ckgegeben und aus dem Array entfernt Liefert den ersten Wert von array verschiebt die anderen Werte hinunter...more
  • [VBA] between()
    VBA between Leider gibt es nur im SQL den Befehl Between. In VBA fehlt mir dieser. Meistens wird das mit unteres Limit Wert AND Wert oberes Limit umgesetzt. Genau diese...more
  • [VBA] ceil()
    VBA ceil Liefert die n chste ganze Zahl die gr er oder gleich dem Inputparameter ist. Download udf ceil.bas Definition double ceil zahl Public Function ceil ByVal iValue As Variant...more
  • [VBA] compaire()
    VBA compaire Eine Funktion zum Vergleichen. Klingt eigentlich unn tig. Doch vergleicht sie alles M gliche. Arrays untereinander Dictionaries Null mit Empty etc. Version . . . . Download udf...more
  • [VBA] concat_ws()
    VBA concat ws Diese Funktion verbindet Mehrere Elemente zu einem String. Das Trennzeichen kann mitgegeben werden. Sie ist sehr gut in SQL geeignet um aus mehreren Feldern ein Key zu...more
  • [VBA] escapeRegExpPattern()
    VBA escapeRegExpPattern Escapte alle Sonderzeichen um einen rx-Pattern zu erstellen Version . . . . Download udf escaperegexppattern.bas V- . . Beispiele escapeRegExpPattern Hallo Welt. Geht es dir noch gut...more
  • [VBA] findInSet()
    VBA findInSet Findet ein Element in einem Set Set kommaseparierte Liste . Analog zum MySL Befehl find in set . Version . . Download udf findinset.bas V- . . Beschreibung...more
  • [VBA] firstValue()
    VBA firstValue firstValue gibt den ersten Eintrag der nicht NULL ist zur ck. Sie ist sehr gut geeignet um aus Queries zuzugreifen Die Funktion funktioniert auch mit Objekten Version .more
  • [VBA] folderDialog()
    VBA folderDialog Eine kleine Funktion um einen Ordner auszuw hlen. Getestet unter MS Access und MS Excel. Eigentlich ist es ein Wrapper um den eingebauten Folderdialog. Aber man kann den...more
  • [VBA] 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 . . Download udf fromset.bas V-...more
  • [VBA] getFileTypeCommand(), getFileTypeDescription()
    VBA getFileTypeCommand getFileTypeDescription Im Tutorals-Forum kam von DrMueller die folgende Frage. DrMueller Wir haben die Dokumenterstellung so programmiert dass wir die Endung pr fen und entsprechend das Programm initialisieren .......more
  • [VBA] greatest()
    VBA greatest Gibt den Gr ssten aus einer unbestimmten Menge von Werten zur ck. Version . . - Download udf greatest.bas V- . . Siehe auch VBA least Beispiele VBA...more
  • [VBA] heredoc()
    VBA heredoc In VBA ist es leider fast nicht m glich einen l ngeren fixen Text in eine Variable zu dr cken ohne ihn unlesbar zu machen. heredoc ist mein...more
  • [VBA] Increment/Decrement (i++ etc)
    VBA Increment Decrement i etc Simuliert ein i oder i f r VBA. Version . . - . . Download lib increment.bas V- . . In vielen Sprachen kennt man...more
  • [VBA] inSet()
    VBA inSet Diese Funktion dient als IN wie man sie in vielen anderen Sprachen kennt. Sie kann aber auch ein in array abdecken. Version . . . . Download udf...more
  • [VBA] isNothing()
    VBA isNothing Pr ft ob allgemein etwas in einer Variable ist. Fast also mehrere m gliche Leerpr fungen zusammen Die folgenden Variableninhalte geben TRUE zur ck Null Empty Nothing Leerer...more
  • [VBA] least()
    VBA least Gibt den Kleinsten aus einer unbestimmten Menge von Werten zur ck. Version . . - Download udf least.bas V- . . Siehe auch VBA greatest Beispiele least least...more
  • [VBA] list()
    VBA list Diese Funktion schreibt die Werte einer Auflistung in Variablen. Fast so wie list in PHP. list ist geeignet um ein Array Collection etc. in Variablen zu zerteilen. Version...more
  • [VBA] lPad(), rPad()
    VBA lPad rPad Das Gegenteil von Trim. lPad und rPad erweitern Strings auf eine bestimmte L nge. Diese Version schneidet zu lange Strings auch ab. Version . . - .more
  • [VBA] masked2unicode()
    VBA masked unicode Diese Funktion wandelt alle mit maskierten Zeichen in einem String in unicode. Version . . . . Siehe auch VBA Unicode Funktionen. Download udf masked unicode.bas V-...more
  • [VBA] multiSort()
    VBA multiSort Ein Quicksort auf ein Array. Dabei wird ein zweiter Array mitsortiert Version . . Download udf multisort.bas V- . . Beschreibung Definition bool multisort array- array- sortOrder Public...more
  • [VBA] parseCsvLine()
    VBA parseCsvLine Zerlegen einer CSV-Zeile in einen String-Array Version . . . . Download udf parsecsvline.bas V- . . Definition Array String parseCsvLine line delemiter quote trim Public Function parseCsvLine...more
  • [VBA] printList()
    VBA printList Schreibt eine Liste in lesbarer Form Version . . - . . Download udf printlist.bas V- . . Siehe auch VBA printRef Beschreibung Mit dieser Methode kann eine...more
  • [VBA] printRef()
    VBA printRef Schreibt die VBA-Referenzen als Liste in lesbarer Form Version . . - . . Download udf printref.bas V- . . VBA printList Beispiele Ein Beispiel aus einem aktuellen...more
  • [VBA] readExcelSheetNames()
    VBA readExcelSheetNames Liest alle Sheetnamen einer Exceldatei aus ' param iFilePath Pfad der Exceldatei ' return Array mit den Sheetnamen der Exceldatei Public Function readExcelSheetNames ByVal iFilePath As String As...more
  • [VBA] ref()
    VBA ref Es gibt anwendugsf lle bei denen man nicht weissob ob die bergabevariable ein Objekt oder eine einfach Variable ist. ref handelt im Gegensatz zu das selber. Version .more
  • [VBA] rndString()
    VBA rndString Stellt aufgrund eines Patterns ein Zufallstext zusammen. zB. f r ein Passwortgenerator Version . . - . . Download udf rndstring.bas V- . . Definition String rndString pattern...more
  • [VBA] rxMatch() / rxLokup() / rxReplace()
    VBA rxMatch rxLokup rxReplace Pr ft ob ein Value auf ein Pattern passt. Die RegExp-Objekte werden gecached. Interessant f r SQL Version . . - . . Download lib rxlib.bas...more
  • [VBA] splitPlus()
    VBA splitPlus Erweiterung des VBA.split . Diese Funktion kann mit Anf rhungszeichen und Maskierungen arbeiten Version . . . . Download udf splitplus.bas V- . . Definition Array String splitPlus...more
  • [VBA] strChunk()
    VBA strChunk Diese Funktion zerlegt einen String in eine feste Anzahl Teile. Download udf strChunk.bas Beispiele F r die Ausgabe der Resultate verwendete ich die Funktion VBA print r Read...more
  • [VBA] strReplace()
    VBA strReplace Diese Funktion erm glicht es mehrere Ersetzungen Gleichzeitig durchszuf hren ohne dass sich diese gegenseitig in die Quere kommen. Version . . - . . Download udf strreplace.bas...more
  • [VBA] strSplit()
    VBA strSplit Diese Funktion zerlegt einen String in Teile einer festen Breite Download udf strSplit.bas Beispiele F r die Ausgabe der Resultate verwendete ich die Funktion VBA print r Read...more
  • [VBA] substrReplace()
    VBA substrReplace Diese Funktion ist analog zum PHP-Befehl substr replace Version . . . . Download udf substrreplace.bas V- . . Beispiele 'Nach dem ten Zeichen alles ersetzen substrReplace AB...more
  • [VBA] trims()
    VBA trims trims ist eine Trim-Funktion f r Strings. Im Gegensatz zu trim entfernt trims auch NewLines und Tabulatoren. Zudem kann auch ein RTrim oder LTrim ausgef hrt werden Version...more
  • [VBA] unicodeDecode()
    VBA unicodeDecode Diese Funktion wandelt alle mit Unicodes in einem String in Zeichen um. Version . . . . Download udf unicodedecode.bas V- . . Siehe auch VBA Unicode Funktionen....more
  • [VBA] unicodeEncode()
    VBA unicodeEncode Diese Funktion wandelt alle SOnderzeichen in Unicode um Version . . . . Download udf unicodeencode.bas V- . . Siehe auch VBA Unicode Funktionen. Beispiele unicodeEncode H llo...more
  • [VBA] week2date()
    VBA week date Gibt Das Dazum eines bestimmten Wochentages in einer bestimmten Woche des Jahres aus Version . . - . . Download udf week date.bas V- . . Beispiele...more
  • [VBA] wordwrap()
    VBA wordwrap Mittels wordwrap k nnen l ngere Texte umgebrochen werden ohne dass die W rter zerst ckelt werden Version . . - . . Download udf wordwrap.bas V- .more
  • [VBA] Array Functions
    VBA Array Functions VBA kennt Arrays. Doch vieles daran ist noch nicht sehr programmierfreundlich. ber die Jahre habe ich mir eine Sammlung versch. Hilfsfunktionen erstellt die f r mich die...more
  • [VBA] print_r()
    VBA print r print r zeigt Informationen ber eine Variable in menschenlesbarer Form an. Version . . . . Download lib printr.bas V- . . Download lib printR excel.bas V-...more
  • [VBA] sprintf(), vsprintf()
    VBA sprintf vsprintf Gibt eine anhand des Formatierungs-Strings format gebildete Zeichenkette zur ck. Version . . - . . Download lib printf.bas V- . . Von PHP bin ich mir...more
  • [VBA] RegExp Functions (RX-Functins)
    VBA RegExp Functions RX-Functins Eine Sammlung mit Funktionen rund um RegExp Download RxCached.bas Insperiert durch PHP mit den Funktion preg match preg match all preg replace und preg replace callback...more

VBA Funktionen

concat()

Ist vor allem in Queries sehr angenehm, um mehrere Felder zu einem String zu kombinieren

concat.bas
'/**
' * Fügt mehrere Elemente zu einem String zusammen
' * @param  ParamArray      Die verschiedenen Elemente
' * @return String
' */
Public Function concat(ParamArray items() As Variant) As String
    concat = Join(items, Empty)
End Function

replaceA()

Mehrere Replace auf einmal ausführen

replacea.bas
'/**
' * Copyright mpl by ERB software | http://wiki.yaslaw.info
' * http://wiki.yaslaw.info/dokuwiki/doku.php/vba/functions/index#replacea
' *
' * @example:   str = replaceA("abcd", array("a", "c"), "_")            '_b_d
' * @example:   str = replaceA("abcd", array("a", "c"), array("A", "C") 'AbCd
' *
' * @example:   str = replaceA("abcd", array("a", "c"), "_")            '_b_d
' * @example:   str = replaceA("abcd", array("a", "c"), array("A", "C") 'AbCd
' * @param  Variant                     expression containing substring to replace.
' * @param  Array<String>               find Required. Substring being searched for.
' * @param  Array<String> or String     replace Required. Replacement substring.
' * @param  Long                        Siehe VB-Doku zu replace()
' * @param  Long                        Siehe VB-Doku zu replace()
' * @param  VbCompareMethod             Siehe VB-Doku zu replace()
' * 2return String
' */
Private Function replaceA( _
        ByVal iExpression As Variant, _
        ByVal iFind As Variant, _
        ByVal iReplace As Variant, _
        Optional ByVal iStart As Long = 1, _
        Optional ByVal iCount As Long = -1, _
        Optional ByVal iCompare As VbCompareMethod = vbBinaryCompare _
) As String
    'Sicherstellen, dass wir einen String haben
    Dim str     As String:  str = CStr(Nz(iExpression))
    'Sicherstellen, dass filnd ein Array as iFind ist
    Dim find    As Variant: find = IIf(IsArray(iFind), iFind, Array(iFind))
    'Sicherstellen, dass repl ein Array aus iReplace ist
    Dim repl    As Variant: repl = IIf(IsArray(iReplace), iReplace, Array(iReplace))
    Dim i       As Integer
 
    'Die Arrays miteinander abstimmen. Wenn find mehr einträge als repl hat, so
    'wird der Rest bei repl mit seinem letzten Eintrag aufgefüllt.
    For i = UBound(repl) + 1 To UBound(find)
        ReDim Preserve repl(i)
        repl(i) = repl(0)
    Next i
 
    'Pro find ein Replace ausführen
    For i = 0 To UBound(find)
        str = replace(str, CStr(find(i)), CStr(repl(i)), iStart, iCount, iCompare)
    Next i
 
    'return
    replaceA = str
End Function

truncDate()

Entfern bei einem Zeitstempel Zeit:
01.12.2013 13:45:1301.12.2013

truncDate.bas
'/**
' * Copyright mpl by ERB software | http://wiki.yaslaw.info
' *
' * Schneidet die Zeit ab
' * @param  Date        Datum + Zeit
' * @retrun Date        Datum ohne Zeit
' */
Public Function truncDate(Optional ByVal iDateTime As Variant = Null) As Date
    iDateTime = CDate(Nz(iDateTime, Now))
    truncDate = DateSerial(Year(iDateTime), Month(iDateTime), Day(iDateTime))
End Function

isByte()

Analog zu isNumeric(). Checkt ob ein Wert ein Byte ist

isByte.bas
'/**
' * Copyright mpl by ERB software
' * http://wiki.yaslaw.info/dokuwiki/doku.php/vba/functions/index#isbyte
' *
' * Prüft on ein Value ein Byte-Wert ist
' * @param  Variant     Zu prüfender Wert
' * @return Boolean
' */
Public Function isByte(ByVal iExpression As Variant) As Boolean
    If Not IsNumeric(iExpression) Then Exit Function
    If iExpression < 0 Or 255 < iExpression Then Exit Function
    isByte = (CByte(iExpression) = iExpression)
End Function

isInteger()

Analog zu isNumeric(). Checkt ob ein Wert ein Integer ist

isInteger.bas
'/**
' * Copyright mpl by ERB software 
' * http://wiki.yaslaw.info/dokuwiki/doku.php/vba/functions/index#isinteger
' *
' * Prüft on ein Value ein Integer-Wert ist
' * @param  Variant     Zu prüfender Wert
' * @param  Boolean     Angabe, ob Byte auch als Integer gelten (Byte: 0 bis 255)
' * @return Boolean
' */
Public Function isInteger(ByVal iExpression As Variant, Optional ByVal iWithByte As Boolean = False) As Boolean
    If Not IsNumeric(iExpression) Then Exit Function
    If iExpression < -32768 Or 32767 < iExpression Then Exit Function
    isInteger = (CInt(iExpression) = iExpression)
    If Not iWithByte And isInteger Then isInteger = Not isByte(iExpression)
End Function

isLong()

Analog zu isNumeric(). Checkt ob ein Wert ein Longist

isLong.bas
'/**
' * Copyright mpl by ERB software
' * http://wiki.yaslaw.info/dokuwiki/doku.php/vba/functions/index#islong
' *
' * Prüft on ein Value ein Long-Wert ist
' * @param  Variant     Zu prüfender Wert
' * @param  Boolean     Angabe, ob Integer/Byte auch als Long gelten (Integer: -32768 bis 32767)
' * @return Boolean
' */
Public Function isLong(ByVal iExpression As Variant, Optional ByVal iWithInteger As Boolean = False) As Boolean
    If Not IsNumeric(iExpression) Then Exit Function
    If iExpression < -2147483648# Or 2147483647 < iExpression Then Exit Function
    isLong = (CLng(iExpression) = iExpression)
    If Not iWithInteger And isLong Then isLong = Not isInteger(iExpression)
End Function

isDouble()

Analog zu isNumeric().Checkt ob ein Wert ein Double ist

isDouble.bas
'/**
' * Copyright mpl by ERB software
' * http://wiki.yaslaw.info/dokuwiki/doku.php/vba/functions/index#isdouble
' *
' * Prüft on ein Value ein Double-Wert ist
' * @param  Variant     Zu prüfender Wert
' * @param  Boolean     Flag ob ein Integer/Long als Double akzeptiert werden soll
' * @return Boolean
' */
Public Function isDouble(ByVal iExpression As Variant, Optional ByVal iWithIntLng As Boolean = False) As Boolean
    If Not IsNumeric(iExpression) Then Exit Function
    isDouble = (CDbl(iExpression) = iExpression)
    If Not iWithIntLng And isDouble Then isDouble = Not isLong(iExpression, True)
End Function

isClassModul()

Und noch eine Prüfung ob ein Objekt eine Instanz eines Klasssenmoduls ist

isClassModul.bas
'/**
' * Prüft ob das Objekt von einer User Definirten Klasse stammt
' * @param  Variant     Das zu untersuchende Objekt
' * @return Boolean     True => Objekt ist ein Klassenmodul
' */
Private Function isClassModul(ByVal iExpression As Variant) As Boolean
    Dim tn As String: tn = typeName(iExpression)
 
    isClassModul = False
On Error Resume Next
    isClassModul = (Application.VBE.ActiveVBProject.VBComponents(tn).name) = tn
    Err.Clear
End Function

bitComp()

MS Access kennt für SQL-Statements kein Bit Vergleich. Mittels dieser Funktion kann man das im SQL trotzdem anwenden. Die Funktion kann aber auch normal innerhalb von VB verwednet werden.

bitComp.bas
'/**
' * Copyright mpl by ERB software | http://wiki.yaslaw.info
' * 
' * Bit Comparison
' * geeignet für MS Access SQL-Statements
' * @example:   Alle User mit Schreibrecheten gem. CHMOD hat
' *             SELECT * FROM [user] WHERE BITCOMP([rigths], 2)
' * @param  Integer
' * @param  Integer
' * @return Boolean
' */
Public Function bitComp(ByVal iBytes As Integer, ByVal iBit As Integer) As Boolean
    bitComp = (iBytes And iBit)
End Function

greatest()

Analog zu max(). Jedoch mit mehreren Werten

greatest.bas
'/**
' * Copyright mpl by ERB software | http://wiki.yaslaw.info
' *
' * Gibt den Grössten aus einer unbestimmten Menge von Werten zurück
' * @param  Keine Objekte
' * @return Grösster Wert
' * @example greatest("Hallo Welt", 42, "Mister-X") -> Mister-X
'*/
Private Function greatest(ParamArray iItems() As Variant) As Variant
    greatest = iItems(UBound(iItems))
    Dim item As Variant: For Each item In iItems
        If Nz(item) > Nz(greatest) Then greatest = item
    Next item
End Function

least()

Analog zu min(). Jedoch mit mehreren Werten

least.bas
'/**
' * Gibt den Kleinsten aus einer unbestimmten Menge von Werten zurück
' * @param  Keine Objekte
' * @return Grösster Wert
' * @example least("Hallo Welt", 42, "Mister-X") -> 42
'*/
Private Function least(ParamArray iItems() As Variant) As Variant
    least = iItems(LBound(iItems))
    Dim item As Variant: For Each item In iItems
        If Nz(item) < Nz(least) Then least = item
    Next item
End Function

getMax()

getMax.bas
'/**
' * Copyright mpl by ERB software | http://wiki.yaslaw.info
' * 
' * Gibt den Höheren von 2 Werten zurück
' * @param  Variant     Wert 1
' * @param  Variant     Wert 2
' * @return Variant     der Grössere Wert
' */
Public Function getMax(ByVal iValue1 As Variant, ByVal iValue2 As Variant) As Variant
	If iValue1 > iValue2 Then
		getMax= iValue1
	Else
		getMax= iValue2
	End If
End Function

getMin()

getMin.bas
'/**
' * Copyright mpl by ERB software | http://wiki.yaslaw.info
' * 
' * Gibt den Tieferen von 2 Werten zurück
' * @param  Variant     Wert 1
' * @param  Variant     Wert 2
' * @return Variant     der Kleinere Wert
' */
Public Function getMin(ByVal iValue1 As Variant, ByVal iValue2 As Variant) As Variant
	If iValue1 < iValue2 Then
		getMin= iValue1
	Else
		getMin= iValue2
	End If
End Function

chooseTextPart()

chooseTextPart.bas
'/**
' * Copyright mpl by ERB software | http://wiki.yaslaw.info
' * 
' * Splittet ein Feld in Einzelteile und gibt dann den entsprechenden Wert zurück
' * Ist sehr gut geeignet um aus Queries zuzugreifen
' *
' * @example: "cdef" = chooseTextPart(1, "ab cdef gh j klm")
' *
' * @param  Int     Index   Wert der gewählt 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 chooseTextPart(ByVal index As Integer, ByVal text As String, Optional ByVal delemiter As String = " ") As String
	parts = Split(text, delemiter)
	If (index <= UBound(parts)) Then
		chooseTextPart = parts(index)
	Else
		chooseTextPart = vbNullString
	End If
 
End Function

firstValue()

firstValue.bas
'/**
' * Copyright mpl by ERB software | http://wiki.yaslaw.info
' * 
' * gibt den ersten Eintrag der nicht NULL ist zurück.
' * Ist sehr gut geeignet um aus Queries zuzugreiffen
' * Die Funktion funktioniert auch mit Objekten
' * @return Variant
' * @example:
' * ?firstValue(null, null,13,14, null)  //Rückgabewert 13
' */
Public Function firstValue(ParamArray items() As Variant) As Variant
	For Each firstValue In items
		If Not IsNull(firstValue) Then Exit For
	Next
End Function

find_in_set()

Analog zu MySQL FIND_IN_SET(). Kann in Access vor allem bei nichtnormalisierten Tabellen verwendet werden

find_in_set.bas
'/**
' * Copyright mpl by ERB software | http://wiki.yaslaw.info
' * 
' * Analog zu MySQL FIND_IN_SET()
' * Kann in Access vor allem bei nichtnormalisierten Tabellen verwendet werden
' * @param  String  Element das gesucht wird
' * @param  String  Das Set von Elementen, mit Komma getrennt
' * @return Integer oder False
' * @example    If find_in_set("d", "a,b,c,d") Then ...
' * @example    SELECT ... WEHRE find_in_set('d', field1)
' */
Public Function find_in_set(ByVal iSearch As String, ByVal iSet As String) As Variant
	Dim parts() As String
	Dim index   As Integer
On Error GoTo Err_Handler
	find_in_set = False
	parts = split(iSet, ",")
	For index = 0 To UBound(parts)
		If Trim(parts(index)) = iSearch Then
			find_in_set = index + 1
			Exit For
		End If
	Next index
	Exit Function
Err_Handler:
	find_in_set = False
End Function

isVoid()

isVoid.bas
'/**
' * Copyright mpl by ERB software | http://wiki.yaslaw.info
' * 
' * überprüft ob eine Variable abgefüllt ist. "" wird als Nicht abgefüllt gewertet
' * sehr praktisch um innerhalb eines Query einen Wert zu prüfen
' * @param  Variant     Variable
' * @return Boolean
' */
Public Function isVoid(ByVal iVariable As Variant) As Boolean
	If IsObject(iVariable) Then
		isVoid = Not CBool(iVariable Is Nothing)
	Else
		isVoid = Not CBool(IsNull(iVariable) Or iVariable = vbNullString)
	End If
End Function

replaceUmlaute()

replaceUmlaute.bas
'/**
' * Copyright mpl by ERB software | http://wiki.yaslaw.info
' * 
' * Ersetzt alle Umlaute durch Xe
' * Idee by http://www.office-loesung.de/ftopic142553_0_0_asc.php
' * @param  String      Text in dem die Umlaute ersetzt werden soll
' * @param  Boolean     Flag ob bei Grossbuchstaben der Ersatzwert vollständig in Grossbuchstaben geandelt werden soll. Default: false
' *                     False: Ä -> Ae    True: Ä -> AE
' * @return String
' */
Public Function replaceUmlaute(ByVal iSubject As String, Optional ByVal iCaseSave As Boolean = False) As String
	replaceUmlaute = iSubject
	replaceUmlaute = replace(replaceUmlaute, "Ä", IIf(iCaseSave, "AE", "Ae"), 1, -1, vbBinaryCompare)
	replaceUmlaute = replace(replaceUmlaute, "Ü", IIf(iCaseSave, "UE", "Ue"), 1, -1, vbBinaryCompare)
	replaceUmlaute = replace(replaceUmlaute, "Ö", IIf(iCaseSave, "OE", "Oe"), 1, -1, vbBinaryCompare)
	replaceUmlaute = replace(replaceUmlaute, "ä", "ae", 1, -1, vbBinaryCompare)
	replaceUmlaute = replace(replaceUmlaute, "ü", "ue", 1, -1, vbBinaryCompare)
	replaceUmlaute = replace(replaceUmlaute, "ö", "oe", 1, -1, vbBinaryCompare)
	replaceUmlaute = replace(replaceUmlaute, "ß", "ss", 1, -1, vbBinaryCompare)
End Function
vba/functions/index.1412688597.txt.gz · Last modified: 07.10.2014 15:29:57 by yaslaw