{"id":55000064,"date":"2002-06-01T00:00:00","date_gmt":"2020-05-06T15:17:12","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=64"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"VBAFunktionen__ausgewaehlte_Stiefkinder","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/VBAFunktionen__ausgewaehlte_Stiefkinder\/","title":{"rendered":"VBA-Funktionen &#8211; ausgew&auml;hlte Stiefkinder"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg05.met.vgwort.de\/na\/e2c8fb4793924beaaede71cb3393c86a\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Autor: Karl Donaubauer, Wien<\/p>\n<p><\/b><\/p>\n<p><b>Es gibt einige VBA-Funktionen, die sehr n&uuml;tzlich sind, aber so gut wie keinen Bekanntheitsgrad haben. Das liegt vor allem daran, dass diese Funktionen von ihren Erschaffern nur sehr stiefm&uuml;tterlich behandelt werden &#8211; z. B. im Falle neuer Funktionen, die in der Online-Hilfe von Access einfach nicht unter den Neuheiten zu finden sind. Daher ist es kaum verwunderlich, dass diese Funktionen von Access-Entwicklern recht selten eingesetzt werden. Anders ist dies bei Word-Programmierern, die aufgrund ihrer Textlastigkeit meist gut mit diesen Funktionen vertraut sind. Damit auch Sie in Zukunft von diesen Stiefkindern profitieren k&ouml;nnen, finden Sie im vorliegenden Beitrag eine Beschreibung interessanter, aber verwaister VBA-Funktionen.<\/b><\/p>\n<p>Alle Funktionen, die hier behandelt werden, sind Teil der VBA-Bibliothek (Datei: vbe6.dll bzw. Vorg&auml;nger\/Nachfolger) und zwar in den Klassen Interaction (Choose, Switch) und String (alle anderen).<\/p>\n<p>Sie vollbringen keine weltbewegenden Dinge, k&ouml;nnen aber verschiedene Operationen vereinfachen, die oft mit viel zu komplizierten Konstruktionen oder Workarounds gel&ouml;st werden.<\/p>\n<p>Schon lange Bestandteil von VBA bzw. bereits von Access-Basic sind die Funktionen Choose, Switch und StrComp ab Access 1.0, StrConv ab Access 95. Neu ab VBA 6 d. h. ab Access 2000 sind InStrRev, Join, Replace, Split und StrReverse.<\/p>\n<p>Das Schattendasein dieser neueren Funktionen ist nicht verwunderlich. Sie werden, wenn &uuml;berhaupt, nur durch Zufall z. B. im Objektkatalog (siehe Bild 1) oder in der Online-Hilfe gefunden. Sie treten jedoch nicht in der Liste der Neuheiten in der ohnehin mangelhaften Online-Hilfe von Access 2000 oder Access 2002 auf. In Tabelle 1 finden Sie eine Zusammenstellung der vorgestellten Funktionen.<\/p>\n<table border=1>\n<tr>\n<td>\n<p><b>Funktion<\/b><\/p>\n<\/td>\n<td>\n<p><b>Wirkung<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Choose<\/p>\n<\/td>\n<td>\n<p>Auswahl eines Eintrags einer Liste in Abh&auml;ngigkeit vom Index<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Switch<\/p>\n<\/td>\n<td>\n<p>Anzeige des ersten wahren Ausdrucks einer Liste<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>InStrRev<\/p>\n<\/td>\n<td>\n<p>Ausgabe der letzten Position einer Zeichenfolge, die eine bestimmte Zeichenkette enth&auml;lt<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Replace<\/p>\n<\/td>\n<td>\n<p>Ersetzen einer Zeichenfolge durch eine andere<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>StrComp<\/p>\n<\/td>\n<td>\n<p>Vergleich zweier Zeichenfolgen<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>StrConv<\/p>\n<\/td>\n<td>\n<p>Umwandlung einer Zeichenfolge nach bestimmten Regeln<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Join<\/p>\n<\/td>\n<td>\n<p>Aneinanderh&auml;ngen der Teile eines Arrays<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Split<\/p>\n<\/td>\n<td>\n<p>Zerlegen einer Zeichenfolge in einzelne Teile eines Arrays<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>StrReverse<\/p>\n<\/td>\n<td>\n<p>Umdrehen einer Zeichenfolge<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p><b>Tab. 1: VBA-Funktionen und deren Wirkung<\/b><\/p>\n<p>Die Funktion Choose gibt den durch den Index festgelegten Wert aus der angebotenen Auswahlliste zur&uuml;ck. Die Syntax lautet folgenderma&szlig;en:<\/p>\n<p><IMG height=\"382\" src=\"..\/fileadmin\/_temp_\/{FAEFF35E-8A9A-4D57-AEC3-F6B044A068B5}\/pic001.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Der Objektkatalog (hier von Access 2000) zeigt bekannte und wenig bekannte Funktionen relativ &uuml;bersichtlich mit ihrer Klassenzugeh&ouml;rigkeit.<\/span><\/b><\/p>\n<p><IMG height=\"528\" src=\"..\/fileadmin\/_temp_\/{FAEFF35E-8A9A-4D57-AEC3-F6B044A068B5}\/pic002.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Formular mit Optionsgruppe<\/span><\/b><\/p>\n<pre>Choose(Index, Auswahl1, [Auswahl2... [, Auswahl-n]])<\/pre>\n<p>Folgendes Beispiel zeigt die Funktionsweise der Funktion:<\/p>\n<pre>Ergebnis = Choose(3, \"A\", \"B\", \"C\", \"D\")<\/pre>\n<p>Als Ergebnis gibt die Funktion den 3.Eintrag (&#8222;C&#8220;) aus. Eine sinnvolle Verwendung in der Praxis findet die Funktion Choose im Zusammenhang mit Werten, die man in Formularen mithilfe von Optionsgruppen eingibt.<\/p>\n<p>Ein Beispiel ist die Bewertung der Zahlungsmoral von Kunden, die man in einem Tabellenfeld namens Zahlungsmoral vom Typ Zahl mit der Gr&ouml;&szlig;e Byte speichern kann. Die Werteskala ist 1, 2, 3, 4, 5 &#8211; im Sinne von sehr gut, gut, normal, schlecht und sehr schlecht.<\/p>\n<p>Zur Eingabe im Formular wird man hier eine Optionsgruppe verwenden (siehe Bild 2). Die R&uuml;ckverwandlung in Text &#8211; z. B. zum Drucken in einem Bericht &#8211; erfolgt meist mit If-Then- oder Select-Case-Konstruktionen. Eine blo&szlig;e Umwandlung von Zahlen in Texte funktioniert jedoch einfacher mit der Funktion Choose.<\/p>\n<p>Um im Code des Berichtes Zugriff auf das Tabellenfeld Zahlungsmoral zu haben, muss das Feld im Bericht vorhanden sein. Die Eigenschaft Sichtbar des Feldes wird auf Nein eingestellt, denn statt des Inhalts des Tabellenfeldes soll ja der Text angezeigt werden. Zur Anzeige des Textwertes wird ein ungebundenes Textfeld txtMoral im Detailbereich eingef&uuml;gt.<\/p>\n<p>Im Ereignis Beim Formatieren des Detailbereiches ben&ouml;tigt man dann nur noch eine Codezeile f&uuml;r die Umwandlung der Zahl in Text (s. Quellcode 1). Bild 3 zeigt die Verwendung der Funktion Choose in einem Bericht.<\/p>\n<p><IMG height=\"587\" src=\"..\/fileadmin\/_temp_\/{FAEFF35E-8A9A-4D57-AEC3-F6B044A068B5}\/pic003.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Bericht mit Bewertung als Text<\/span><\/b><\/p>\n<pre>Private Sub Detailbereich_Format(Cancel As Integer, _    FormatCount As Integer)\r\n    Me!txtMoral = Choose(Me!Zahlungsmoral, \"sehr gut\", _        \"gut\", \"normal\", \"schlecht\", \"sehr schlecht\")\r\nEnd Sub<\/pre>\n<p><b>Quellcode 1<\/b><\/p>\n<p>Die Funktion Choose l&auml;sst sich nicht nur in VBA, sondern auch in Ausdr&uuml;cken z. B. in einem Steuerelementinhalt verwenden. In dieser deutschen Version hei&szlig;t die Funktion W&auml;hlen. So kann man in obigem Beispiel die Darstellung der Textwerte noch einfacher auch &uuml;ber den folgenden Steuerelementinhalt des Steuerelementes txtMoral regeln: <\/p>\n<pre>=W&auml;hlen([Zahlungsmoral]; \"sehr gut\"; \"gut\";\"normal\";\"schlecht\"; \"sehr schlecht\")<\/pre>\n<p>Manche m&uuml;hsame und schwer lesbare Wenn-Konstruktion kann dadurch ersetzt werden &#8211; nicht nur in Steuerelementinhalten und bei anderer Verwendung in Formularen und Berichten. Die Funktion Choose l&auml;sst sich auch in Kriterien von Abfragen einsetzen.<\/p>\n<p>Die Funktion Switch gibt den ersten Ausdruck aus einer Liste zur&uuml;ck, der wahr ist. Sie hat die folgende Syntax:<\/p>\n<pre>Switch(Ausdr1, Wert1[, Ausdr2, Wert2 [, Ausdr-n,Wert-n]])<\/pre>\n<p>Das folgende Beispiel beschreibt die Funktionsweise der Funktion:<\/p>\n<pre>Ergebnis = Switch(RgDatum     &lt; #1\/1\/2002#, \"DM\", RgDatum &lt; #3\/1\/2002#,\"DM\/EUR\",RgDatum &gt;=#3\/1\/2002#,\"EUR\")<\/pre>\n<p>Wenn das Rechnungsdatum vor dem 1.1.2002 liegt, wird DM zur&uuml;ckgegeben. Falls dieser erste Ausdruck nicht wahr ist, sondern der zweite, d. h. das Rechnungsdatum liegt vor dem 1.3.2002 (in amerikanischer Schreibweise Monat\/Tag\/Jahr), wird DM\/EUR ausgew&auml;hlt. Falls das Rechnungsdatum sp&auml;ter liegt, wird der dritte Wert EUR gew&auml;hlt.<\/p>\n<p>Es werden &uuml;brigens immer alle Ausdr&uuml;cke durchlaufen, auch wenn stets nur der erste zutreffende ausgew&auml;hlt wird.<\/p>\n<p>Daher gibt es z. B. einen Fehler, falls in irgendeinem der Ausdr&uuml;cke eine Division durch 0 erfolgt.<\/p>\n<p>Die Funktion  Switch findet praktische Anwendung, wenn mit komplexeren Kriterien als blo&szlig;  einer aufsteigenden Zahl (wie bei Choose) aus einigen Optionen ausgew&auml;hlt werden soll.<\/p>\n<pre>Function fctAnrede(strAnr As String)\r\n    fctAnrede = Switch(strAnr Like \"Herr*\", _    \"Sehr geehrter \" & strAnr, strAnr Like \"Frau*\", _    \"Sehr geehrte \" & strAnr, strAnr = \"\", _    \"Sehr geehrte Damen und Herren!\")\r\nEnd Function<\/pre>\n<p><b>Quellcode 2<\/b><\/p>\n<pre>Public Function fctFileExt(strPfad As String)\r\n    Dim intStart As Integer\r\n    Dim strDateiname As String, strExtension As String\r\n    ''Position des letzten Backslashes ermitteln\r\n    intStart = InStrRev(strPfad, \"\\\", , _        vbTextCompare) + 1\r\n    ''Dateiname aus dem Pfad extrahieren\r\n    strDateiname = Mid(strPfad, intStart)\r\n    ''Position des letzten Punktes ermitteln\r\n    intStart = InStrRev(strPfad, \".\", , _        vbTextCompare) + 1\r\n    ''Dateierweiterung aus dem Pfad extrahieren\r\n    strExtension = Mid(strPfad, intStart)\r\n    MsgBox \"Die Datei hei&szlig;t ''\" & strDateiname & _        \"''. Die Extension lautet ''\" _        & strExtension & \"''.\"\r\nEnd Function<\/pre>\n<p><b>Quellcode 3<\/b><\/p>\n<p>Das erste Beispiel ist eine Funktion, bei der es darum geht, Anreden f&uuml;r einen Serienbrief zu erzeugen. Je nachdem, ob der Ansprechpartner m&auml;nnlich, weiblich oder unbekannt ist, gibt die Funktion eine passende Anrede zur&uuml;ck (s. Quellcode 2).<\/p>\n<p><!--30percent--><\/p>\n<p>Durch die Verwendung des Operators Like und des Platzhalters * wird sichergestellt, dass auch Kurzanreden mit Titel wie Herr Direktor, Frau Dr. usw. korrekt behandelt werden.<\/p>\n<p>Der Aufruf der Funktion sieht so aus:<\/p>\n<pre>fctAnrede (\"\" & FeldnameMitDerKurzanrede)<\/pre>\n<p>Steht im Feld mit der Kurzanrede z. B. Frau Vorsitzende, so gibt die Funktion Sehr geehrte Frau Vorsitzende zur&uuml;ck. Ist das Feld mit der Kurzanrede hingegen leer, trifft die dritte Variante zu und es wird Sehr geehrte Damen und Herren! zur&uuml;ckgeliefert.<\/p>\n<p>Die Funktion Switch l&auml;sst sich wie Choose auch in Ausdr&uuml;cken verwenden und hei&szlig;t dann Schalter.<\/p>\n<p>Das folgende Beispiel setzt ein Feld namens Umsatz voraus. Ein Steuerelement  k&ouml;nnte dann folgenden Inhalt haben:<\/p>\n<pre>=Schalter([Umsatz] &lt; 10000; \"zu wenig\"; ([Umsatz] Zwischen 10000 Und 50000; \"ok\"; [Umsatz] &gt; 50000; \"sehr gut\")<\/pre>\n<p>Je nach der H&ouml;he des Wertes im Feld Umsatz wird der passende Text angezeigt.<\/p>\n<p>Ob man Switch oder besser Wenn verwenden sollte, h&auml;ngt vor allem von der Anzahl der zur Auswahl stehenden Varianten ab. Sobald etwa eine Wenn-Anweisung mehrfach verschachtelt werden m&uuml;sste, ist die Funktion Switch &uuml;bersichtlicher.<\/p>\n<p>Die Funktion InStrRev gibt die letzte Position zur&uuml;ck, an der eine Zeichenfolge innerhalb einer anderen Zeichenfolge auftritt. Mit der InStrRev-Funktion kann also gepr&uuml;ft werden, an welcher Stelle bestimmte Zeichen in einem Text zuletzt vorkommen.<\/p>\n<p>Die Funktion hat die folgende Syntax:<\/p>\n<pre>InstrRev(stringcheck, stringmatch [, start[, compare]])<\/pre>\n<p>Dabei enth&auml;lt stringcheck die zu durchsuchende Zeichenfolge, stringmatch die gesuchte Zeichenfolge, start die Position, ab der gesucht werden soll, und compare die Art des Vergleiches.<\/p>\n<p>Wichtig sind vor allem die Varianten vbBinaryCompare (bin&auml;rer Vergleich) und vbTextCompare. Folgendes Beispiel verdeutlicht die Funktionsweise:<\/p>\n<pre>Ergebnis = InStrRev(\"ABCABC\", \"C\",,vbTextCompare)<\/pre>\n<p>Die Funktion gibt als Ergebnis den Wert 6 zur&uuml;ck.<\/p>\n<p>Eine praktische Verwendungsm&ouml;glichkeit ist das Extrahieren eines Dateinamens oder der Dateinamen-Erweiterung (Extension) aus einem gegebenen Pfad.<\/p>\n<p>In Versionen vor Access 2000 muss man mit einer Schleife (und der InStr-Funktion) durch den Pfad laufen, um zu erfahren, wo der letzte Backslash (\\) vorkommt &#8211; dies entspricht der Stelle, an der der eigentliche Dateiname beginnt. Die InStrRev-Funktion erleichtert diese Suche  (Quellcode 3).<\/p>\n<p>Mit dem folgenden Aufruf dieser Funktion erhalten Sie beispielsweise die Meldung aus Bild 4:<\/p>\n<pre>fctFileExt (\"c:\\Dokumente\\Angebot.doc\")<\/pre>\n<p><IMG height=\"100\" src=\"..\/fileadmin\/_temp_\/{FAEFF35E-8A9A-4D57-AEC3-F6B044A068B5}\/pic004.png\" width=\"294\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4:  InstrRev() hilft beim Extrahieren von Teilen eines Dateipfades.<\/span><\/b><\/p>\n<p>Die Funktion Replace ersetzt einen Teil einer Zeichenfolge durch einen anderen. Sie hat die folgende Syntax:<\/p>\n<pre>Replace(expression, find, replace[, start[, count[, compare]]])<\/pre>\n<p>Die verwendeten Parameter haben folgende Funktion:<\/p>\n<li>expression: Zeichenfolge, in der ersetzt werden soll<\/li>\n<li>find: neuer Wert f&uuml;r den zu ersetzenden Teil<\/li>\n<li>start: Startposition des Teiles, der ersetzt werden soll<\/li>\n<li>count: Anzahl der Ersetzungen, bei Weglassung werden alle Vorkommen ersetzt<\/li>\n<li>compare: Art des Vergleiches (wie bei InstrRev)<\/li>\n<p>Folgendes Beispiel verdeutlicht die Funktionsweise der Funktion Replace:<\/p>\n<pre>Ergebnis = Replace(\"Wunderbare Befehle von VBA\", \"bar\",\"voll\",,,vbTextCompare)<\/pre>\n<p>Die Funktion &uuml;bergibt den Text Wundervolle Befehle von VBA an die Variable Ergebnis.<\/p>\n<p>Da es bis Access 2000 nur die nicht sehr komfortable Mid-Anweisung zum Ersetzen von Zeichenfolgen gab, existieren viele benutzerdefinierte Funktionen mit mehr oder weniger komplizierten Schleifenkonstruktionen. Die meisten dieser selbst gebastelten Funktionen k&ouml;nnen nun durch das einfachere Replace ersetzt werden.<\/p>\n<p>Ein h&auml;ufiger Anwendungsfall f&uuml;r die Funktion Replace ergibt sich in Aktualisierungsabfragen. In Ausdr&uuml;cken hei&szlig;t die Replace-Funktion Ersetzen. Wenn man z. B. Leerzeichen in einem Textfeld loswerden m&ouml;chte, so geht das nun ohne komplizierte Programmierung. Es reicht ein Ausdruck in der Zeile Aktualisieren der Aktualisierungsabfrage: <\/p>\n<pre>Ersetzen([Feldname]; \" \";\"\")<\/pre>\n<p>Dadurch werden alle Leerzeichen im angegebenen Feld durch leere Zeichenketten ersetzt.<\/p>\n<p>Eine wichtige Anmerkung, die mehrere der hier geschilderten Funktionen betrifft, die mit VBA 6  bzw. Access 2000 eingef&uuml;hrt wurden: <\/p>\n<p>Bei manchen Installationen kommt es vor, dass diese neuen Funktionen nur im VBA-Code funktionieren, nicht jedoch in Ausdr&uuml;cken d. h. in ihrer eingedeutschten Version. Das kann in zwei Abstufungen auftreten.<\/p>\n<p>Die schlimme Version ist, dass eine Funktion wie Replace au&szlig;erhalb des VBA-Codes &uuml;berhaupt nicht erkannt wird.<\/p>\n<p>Die Fehlermeldung lautet dann Undefinierte Funktion &#8218;Replace&#8220; in Ausdruck. Ich kenne keine offizielle Stellungnahme von MS dazu.<\/p>\n<p>Die Gr&uuml;nde liegen also im Dunkeln. Es f&auml;llt nur auf, dass das Problem oft auftritt, wenn keines der Service Packs f&uuml;r Office 2000 installiert ist. Falls der Fehler erscheint, sollten Sie also versuchen, am besten gleich das Service Pack 2 zu installieren.<\/p>\n<p>Eine zweite Version sieht so aus, dass zwar die Funktionen wie Replace erkannt und korrekt ausgef&uuml;hrt werden. Sie werden aber weder automatisch gro&szlig; geschrieben &#8211; was sonst standardm&auml;&szlig;ig in Ausdr&uuml;cken passiert &#8211; noch werden sie auf Deutsch &uuml;bersetzt. Der Fehler ist nicht weiter tragisch. Verwenden Sie einfach die englischen Funktionsnamen.<\/p>\n<p>Mit Access 2002 scheint Microsoft diese Probleme behoben zu haben. Zumindest habe ich bisher keine Installation gesehen, bei der Replace in Ausdr&uuml;cken nicht sauber in Ersetzen &uuml;bersetzt und ausgef&uuml;hrt wurde.<\/p>\n<p>Die Funktion StrComp gibt eine Zahl zur&uuml;ck, die anzeigt, ob zwei Zeichenfolgen gleich sind. Sie hat die folgende Syntax:<\/p>\n<pre>StrComp(Zeichenfolge1, Zeichenfolge2 [, Compare])<\/pre>\n<p>Die Parameter Zeichenfolge1 und Zeichenfolge2 enthalten die zu vergleichenden Zeichenfolgen. Der Parameter Compare beinhaltet die Art des Vergleiches.<\/p>\n<p>In der Praxis sind folgende Werte f&uuml;r das Argument Compare wichtig:<\/p>\n<li>vbTextCompare (1): textbasierter Vergleich (keine Unterscheidung zwischen Gro&szlig;- und Kleinschreibung)<\/li>\n<li>vbBinaryCompare (0): bin&auml;rer Vergleich (Unterscheidung zwischen Gro&szlig;- und Kleinschreibung)<\/li>\n<p>Die Funktion hat die folgenden R&uuml;ckgabewerte:<\/p>\n<li>0: Die Zeichenfolgen sind gleich.<\/li>\n<li>-1: Die erste Zeichenfolge liegt in der ASCII-Tabelle vor der zweiten Zeichenfolge.<\/li>\n<li>1: Die erste Zeichenfolge liegt in der ASCII-Tabelle hinter der zweiten Zeichenfolge.<\/li>\n<li>Null: Eine der Zeichenketten ist Null.<\/li>\n<p>Die folgenden zwei Beispiele verdeutlichen die Funktionsweise der Funktion:<\/p>\n<pre>Ergebnis = StrComp(\"abc\",\"ABC\",vbTextCompare)\r\nErgebnis = StrComp(\"abc\",\"ABC\",vbBinaryCompare)<\/pre>\n<p>W&auml;hrend der erste Funktionsaufruf den Wert 0 f&uuml;r zwei gleiche Zeichenfolgen zur&uuml;ckgibt, ergibt der zweite Funktionsaufruf den Wert 1. Dies bedeutet, dass die Zeichenfolgen nicht gleich sind.<\/p>\n<p>Genau das ist auch der entscheidende Punkt f&uuml;r die praktische Verwendung der StrComp-Funktion. Access unterscheidet normalerweise nicht zwischen Gro&szlig;- und Kleinschreibung (Stichwort: case sensitiv) oder auch zwischen scharfem s (&szlig;) und doppeltem s (ss).<\/p>\n<p>Beides l&auml;sst sich jedoch mithilfe von StrComp und bin&auml;rem Vergleich erreichen. Das kann in vielen Situationen, z. B. in Abfragen, zur Unterscheidung von Feldinhalten n&uuml;tzlich sein.<\/p>\n<p>Das vorherige Beispiel w&uuml;rde in einer Abfrage so aussehen:<\/p>\n<pre>Ergebnis: StrVgl(\"abc\";\"ABC\";0)<\/pre>\n<p>Als Ergebnis erh&auml;lt man wieder 1 und wei&szlig; damit, dass die Zeichenfolgen nicht gleich sind und die erste Zeichenfolge in der ASCII-Tabelle wegen der Kleinbuchstaben vor der zweiten liegt.<\/p>\n<p>Bei dieser Gelegenheit sollen einmal zusammenfassend die Unterschiede bei der Verwendung von VBA-Funktionen in Ausdr&uuml;cken, wie z. B. in Abfragen, im Gegensatz zur Verwendung im Code aufgef&uuml;hrt werden:<\/p>\n<li>Das Semikolon muss statt des Kommas als Trennzeichen verwendet werden.<\/li>\n<li>Die Funktionen haben zum Teil eingedeutschte Namen, z. B. hei&szlig;t StrComp in Ausdr&uuml;cken StrVgl. Sie k&ouml;nnen dabei ruhig die englischen Bezeichnungen eingeben &#8211; sie werden bei Bedarf von Access automatisch &uuml;bersetzt.<\/li>\n<li>Man kann f&uuml;r Argumente keine Konstantenmaskierungen wie vbBinaryCompare, sondern nur die Zahlkonstanten verwenden.<\/li>\n<p>Die Funktion StrConv gibt eine nach bestimmten Regeln umgewandelte Zeichenfolge zur&uuml;ck. Sie hat folgende Syntax:<\/p>\n<pre>StrConv(Zeichenfolge, Conversion, LCID)<\/pre>\n<p>Der Parameter Conversion gibt die Art der Umwandlung an. Dabei gelten folgende Werte:<\/p>\n<li>vbUpperCase (1): wandelt die ganze Zeichenfolge in Gro&szlig;buchstaben um.<\/li>\n<li>vbLowerCase (2): wandelt die ganze Zeichenfolge in Kleinbuchstaben um.<\/li>\n<li>vbProperCase (3): wandelt den ersten Buchstaben jedes Wortes innerhalb der Zeichenfolge in einen Gro&szlig;buchstaben um, die weiteren Buchstaben jedes Wortes in Kleinbuchstaben.<\/li>\n<p>Weitere, in der Praxis nicht besonders wichtige Varianten finden Sie in der Online-Hilfe. Der zweite Parameter LCID enth&auml;lt die Gebietsschema-ID f&uuml;r den Zeichenvergleich. Voreinstellung ist die des Betriebssystems.<\/p>\n<p>Die Funktionsweise wird durch folgendes Beispiel verdeutlicht:<\/p>\n<pre>Ergebnis = StrConv(\"mein Text\",vbUpperCase)<\/pre>\n<p>Entsprechend dem verwendeten Wert f&uuml;r den Parameter gibt die Funktion den Ausdruck MEIN TEXT zur&uuml;ck.<\/p>\n<p>Die komplette Umwandlung in Gro&szlig;- oder Kleinbuchstaben ist oft eine sinnvolle Sache. Noch n&uuml;tzlicher in der Praxis ist jedoch die Variante vbProperCase des Argumentes Conversion. Man kann damit z. B. daf&uuml;r sorgen, dass schlampig eingetippte Vor- und Nachnamen mit gro&szlig;en Anfangsbuchstaben versehen werden:<\/p>\n<pre>Ergebnis = StrConv(\"herr franz m&uuml;ller\",vbProperCase)<\/pre>\n<p>ergibt beispielsweise Herr Franz M&uuml;ller.<\/p>\n<p>Die deutsche Version &#8211; z. B. f&uuml;r eine Abfrage &#8211; sieht so aus:<\/p>\n<pre>Ergebnis: StrKonv(\"herr franz m&uuml;ller\";3)<\/pre>\n<p>Dabei wird man im Regelfall nat&uuml;rlich eher mit Feldnamen arbeiten. Ein gutes Beispiel ist wiederum eine Aktualisierungsabfrage. Dort w&uuml;rde man in der Zeile Aktualisieren einer Aktualisierungsabfrage f&uuml;r das Textfeld Vorname den folgenden Ausdruck einsetzen:<\/p>\n<pre>StrKonv([Vorname];3)<\/pre>\n<p>Damit erhalten alle Vornamen gro&szlig;e Anfangsbuchstaben. Vorsicht ist jedoch bei doppelten Vornamen geboten, die mit Bindestrich getrennt sind. So w&uuml;rde in diesem Beispiel aus Karl-Heinz ein Karl-heinz, denn der Doppelname wird als ein Wort aufgefasst und daher au&szlig;er dem Anfangsbuchstaben insgesamt klein geschrieben.<\/p>\n<p>Die Funktion Join setzt die Teile eines Arrays (ggf. mit Trennzeichen) zu einer Zeichenfolge zusammen. Die Syntax der Funktion lautet:<\/p>\n<pre>Join(Quellarray [, Trennzeichen])\r\nPrivate Sub btn_Uebersicht_Click()\r\n    On Error GoTo BspJoin_Error\r\n    Dim rs As DAO.Recordset\r\n    Set rs = Me.RecordsetClone\r\n    Dim strArr() As String\r\n    Dim i As Integer\r\n    Dim j As Integer\r\n    '' Falls keine Datens&auml;tze vorhanden, Prozedur verlassen\r\n    If rs.BOF Then GoTo BspJoin_Error\r\n    '' Datens&auml;tze z&auml;hlen, zuerst MoveLast, damit richtig gez&auml;hlt wird\r\n    rs.MoveLast\r\n    j = rs.RecordCount - 1\r\n    '' Array dimensionieren\r\n    ReDim strArr(j)\r\n    '' RecordsetClone durchlaufen und Array f&uuml;llen\r\n    rs.MoveFirst\r\n    For i = 0 To j\r\n        strArr(i) = Nz(rs!Nachname, \"leer\")\r\n        rs.MoveNext\r\n    Next i\r\n    '' Mitgliederliste als Meldung mit einem Wert pro Zeile ausgeben\r\n    '' Trennzeichen in der Join-Funktion ist hier der Zeilenumbruch\r\n    MsgBox Join(strArr, vbCrLf), , \"Mitglieder bisher sind\"\r\nBspJoin_Exit:\r\n    Exit Sub\r\nBspJoin_Error:\r\n    Set rs = Nothing\r\n    Resume BspJoin_Exit\r\nEnd Sub<\/pre>\n<p><b>Quellcode 4<\/b><\/p>\n<p>Mit dem Parameter Quellarray &uuml;bergeben Sie der Funktion ein eindimensionales Array und mit Trennzeichen legen Sie fest, welches Trennzeichen verwendet werden soll.<\/p>\n<p>Die Funktionen Join und die im folgenden Kapitel vorgestellte Funktion Split sind nicht in einer Zeile zu erkl&auml;ren. Deshalb folgt nun gleich ein l&auml;ngeres Beispiel.<\/p>\n<p>Manchmal ist es sinnvoll, die Inhalte eines bestimmten Tabellenfeldes in einem l&auml;ngeren Text zusammenzufassen, z. B. um die bisher in einem Feld eingegebenen Werte geb&uuml;ndelt in einem Bericht darzustellen oder als Information am Bildschirm anzuzeigen.<\/p>\n<p>Im folgenden Beispiel wird dazu der RecordsetClone eines Formulars durchlaufen, ein Array mit den Werten eines Feldes gef&uuml;llt und am Ende ein Meldungsfenster mit dem Inhalt des Arrays ausgegeben (s. Quellcode 4).<\/p>\n<p>Bild 4 zeigt, wie das entsprechende Meldungsfenster aussieht.<\/p>\n<p>Die Funktion Split zerlegt eine Zeichenfolge in einzelne Elemente eines Arrays. Sie hat die folgende Syntax:<\/p>\n<pre>Split(Ausdruck [, Trennzeichen[, Limit[, Compare]]])<\/pre>\n<p><IMG height=\"332\" src=\"..\/fileadmin\/_temp_\/{FAEFF35E-8A9A-4D57-AEC3-F6B044A068B5}\/pic005.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5:  Ein mit Join erzeugtes Meldungsfenster mit einer &uuml;bersicht der bisherigen Eingaben<\/span><\/b><\/p>\n<pre>Dim strWorte() As String\r\nstrWorte = Split(\"Split() hilft beim Z&auml;hlen.\", , , _    vbBinaryCompare)\r\nMsgBox \"Der Text besteht aus \" & UBound(strWorte) - _    LBound(strWorte) + 1 & \" Worten.\"<\/pre>\n<p><b>Quellcode 5<\/b><\/p>\n<p>Die Parameter haben die folgende Bedeutung:<\/p>\n<li>Ausdruck: Zeichenfolge, die durch ein Trennzeichen geteilt ist<\/li>\n<li>Trennzeichen: standardm&auml;&szlig;ig wird ein Leerzeichen angenommen<\/li>\n<li>Limit: Anzahl der zur&uuml;ckgegebenen Zeichenfolgen, im Normalfall -1 d. h. alle<\/li>\n<li>Compare: Art des Stringvergleiches<\/li>\n<p>Praktisch einsetzen l&auml;sst sich die Split-Funktion vor allem zum Z&auml;hlen von W&ouml;rtern. Dazu muss man nur einen Text (oder ein Array aus Zeichenfolgen) an Split &uuml;bergeben und mithilfe der Funktionen UBound und LBound die Dimensionen dieses Arrays ermitteln. Das klingt vielleicht komplizierter als es ist, denn der daf&uuml;r n&ouml;tige Code ist recht kurz (s. Quellcode 5).<\/p>\n<p><IMG height=\"100\" src=\"..\/fileadmin\/_temp_\/{FAEFF35E-8A9A-4D57-AEC3-F6B044A068B5}\/pic006.png\" width=\"177\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6:  Mit der Split-Funktion kann man die W&ouml;rter eines Textes z&auml;hlen.<\/span><\/b><\/p>\n<p>Der Vollst&auml;ndigkeit halber sei bei diesen neuen Array-Funktionen noch die Filter-Funktion erw&auml;hnt. Sie liefert ein Array der in einem Array gefundenen Treffer. Kurz gesagt hat sie recht wenig praktischen Wert.<\/p>\n<p>Zum Abschluss lernen Sie noch eine besondere Funktion kennen:<\/p>\n<p>Die Funktion StrReverse dreht schlicht einen &uuml;bergebenen Text um &#8211; z. B. folgenderma&szlig;en:<\/p>\n<pre>MsgBox StrReverse(\"Hallo, Welt!\")<\/pre>\n<p>Das nun erscheinende Meldungsfenster enth&auml;lt den folgenden Text !tleW ,ollaH.<\/p>\n<p>Ich habe das urspr&uuml;nglich eher f&uuml;r einen Scherz der Entwickler von VBA in Redmond gehalten und deshalb einige Leute befragt, ob sie einen praktischen Nutzen in dieser Funktion sehen.<\/p>\n<p>Es kamen doch zwei ernsthafte Antworten: <\/p>\n<li>Die Verwendung als Bestandteil einer Verschl&uuml;sselungsfunktion.<\/li>\n<li>Das Erstellen einer Stempel-Vorlage, f&uuml;r die man einen Text ja verkehrt herum braucht.<\/li>\n","protected":false},"excerpt":{"rendered":"<p>Es gibt einige VBA-Funktionen, die sehr n&uuml;tzlich sind, aber so gut wie keinen Bekanntheitsgrad haben. Das liegt vor allem daran, dass diese Funktionen von ihren Erschaffern nur sehr stiefm&uuml;tterlich behandelt werden &#8211; zum Beispiel im Falle neuer Funktionen, die in der Onlinehilfe von Access einfach nicht unter den Neuheiten zu finden sind. Daher ist es kaum verwunderlich, dass diese Funktionen von Access-Entwicklern recht selten eingesetzt werden. Anders ist dies bei Word-Programmierern, die aufgrund ihrer Textlastigkeit meist gut mit diesen Funktionen vertraut sind. Damit auch Sie in Zukunft von diesen Stiefkindern profitieren k&ouml;nnen, finden sie im vorliegenden Beitrag eine Beschreibung interessanter, aber verwaister VBA-Funktionen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662002,66032002,44000025],"tags":[],"class_list":["post-55000064","post","type-post","status-publish","format-standard","hentry","category-662002","category-66032002","category-VBA_und_Programmiertechniken"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>VBA-Funktionen - ausgew&auml;hlte Stiefkinder - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/VBAFunktionen__ausgewaehlte_Stiefkinder\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"VBA-Funktionen - ausgew&auml;hlte Stiefkinder\" \/>\n<meta property=\"og:description\" content=\"Es gibt einige VBA-Funktionen, die sehr n&uuml;tzlich sind, aber so gut wie keinen Bekanntheitsgrad haben. Das liegt vor allem daran, dass diese Funktionen von ihren Erschaffern nur sehr stiefm&uuml;tterlich behandelt werden - zum Beispiel im Falle neuer Funktionen, die in der Onlinehilfe von Access einfach nicht unter den Neuheiten zu finden sind. Daher ist es kaum verwunderlich, dass diese Funktionen von Access-Entwicklern recht selten eingesetzt werden. Anders ist dies bei Word-Programmierern, die aufgrund ihrer Textlastigkeit meist gut mit diesen Funktionen vertraut sind. Damit auch Sie in Zukunft von diesen Stiefkindern profitieren k&ouml;nnen, finden sie im vorliegenden Beitrag eine Beschreibung interessanter, aber verwaister VBA-Funktionen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/VBAFunktionen__ausgewaehlte_Stiefkinder\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-06T15:17:12+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg05.met.vgwort.de\/na\/e2c8fb4793924beaaede71cb3393c86a\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"16\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/VBAFunktionen__ausgewaehlte_Stiefkinder\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/VBAFunktionen__ausgewaehlte_Stiefkinder\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"VBA-Funktionen &#8211; ausgew&auml;hlte Stiefkinder\",\"datePublished\":\"2020-05-06T15:17:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/VBAFunktionen__ausgewaehlte_Stiefkinder\\\/\"},\"wordCount\":2765,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/VBAFunktionen__ausgewaehlte_Stiefkinder\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/e2c8fb4793924beaaede71cb3393c86a\",\"articleSection\":[\"2002\",\"3\\\/2002\",\"VBA und Programmiertechniken\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/VBAFunktionen__ausgewaehlte_Stiefkinder\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/VBAFunktionen__ausgewaehlte_Stiefkinder\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/VBAFunktionen__ausgewaehlte_Stiefkinder\\\/\",\"name\":\"VBA-Funktionen - ausgew&auml;hlte Stiefkinder - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/VBAFunktionen__ausgewaehlte_Stiefkinder\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/VBAFunktionen__ausgewaehlte_Stiefkinder\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/e2c8fb4793924beaaede71cb3393c86a\",\"datePublished\":\"2020-05-06T15:17:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/VBAFunktionen__ausgewaehlte_Stiefkinder\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/VBAFunktionen__ausgewaehlte_Stiefkinder\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/VBAFunktionen__ausgewaehlte_Stiefkinder\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/e2c8fb4793924beaaede71cb3393c86a\",\"contentUrl\":\"http:\\\/\\\/vg05.met.vgwort.de\\\/na\\\/e2c8fb4793924beaaede71cb3393c86a\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/VBAFunktionen__ausgewaehlte_Stiefkinder\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"VBA-Funktionen &#8211; ausgew&auml;hlte Stiefkinder\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"VBA-Funktionen - ausgew&auml;hlte Stiefkinder - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/VBAFunktionen__ausgewaehlte_Stiefkinder\/","og_locale":"de_DE","og_type":"article","og_title":"VBA-Funktionen - ausgew&auml;hlte Stiefkinder","og_description":"Es gibt einige VBA-Funktionen, die sehr n&uuml;tzlich sind, aber so gut wie keinen Bekanntheitsgrad haben. Das liegt vor allem daran, dass diese Funktionen von ihren Erschaffern nur sehr stiefm&uuml;tterlich behandelt werden - zum Beispiel im Falle neuer Funktionen, die in der Onlinehilfe von Access einfach nicht unter den Neuheiten zu finden sind. Daher ist es kaum verwunderlich, dass diese Funktionen von Access-Entwicklern recht selten eingesetzt werden. Anders ist dies bei Word-Programmierern, die aufgrund ihrer Textlastigkeit meist gut mit diesen Funktionen vertraut sind. Damit auch Sie in Zukunft von diesen Stiefkindern profitieren k&ouml;nnen, finden sie im vorliegenden Beitrag eine Beschreibung interessanter, aber verwaister VBA-Funktionen.","og_url":"https:\/\/access-im-unternehmen.de\/VBAFunktionen__ausgewaehlte_Stiefkinder\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-06T15:17:12+00:00","og_image":[{"url":"http:\/\/vg05.met.vgwort.de\/na\/e2c8fb4793924beaaede71cb3393c86a","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"16\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/VBAFunktionen__ausgewaehlte_Stiefkinder\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/VBAFunktionen__ausgewaehlte_Stiefkinder\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"VBA-Funktionen &#8211; ausgew&auml;hlte Stiefkinder","datePublished":"2020-05-06T15:17:12+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/VBAFunktionen__ausgewaehlte_Stiefkinder\/"},"wordCount":2765,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/VBAFunktionen__ausgewaehlte_Stiefkinder\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/e2c8fb4793924beaaede71cb3393c86a","articleSection":["2002","3\/2002","VBA und Programmiertechniken"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/VBAFunktionen__ausgewaehlte_Stiefkinder\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/VBAFunktionen__ausgewaehlte_Stiefkinder\/","url":"https:\/\/access-im-unternehmen.de\/VBAFunktionen__ausgewaehlte_Stiefkinder\/","name":"VBA-Funktionen - ausgew&auml;hlte Stiefkinder - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/VBAFunktionen__ausgewaehlte_Stiefkinder\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/VBAFunktionen__ausgewaehlte_Stiefkinder\/#primaryimage"},"thumbnailUrl":"http:\/\/vg05.met.vgwort.de\/na\/e2c8fb4793924beaaede71cb3393c86a","datePublished":"2020-05-06T15:17:12+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/VBAFunktionen__ausgewaehlte_Stiefkinder\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/VBAFunktionen__ausgewaehlte_Stiefkinder\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/VBAFunktionen__ausgewaehlte_Stiefkinder\/#primaryimage","url":"http:\/\/vg05.met.vgwort.de\/na\/e2c8fb4793924beaaede71cb3393c86a","contentUrl":"http:\/\/vg05.met.vgwort.de\/na\/e2c8fb4793924beaaede71cb3393c86a"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/VBAFunktionen__ausgewaehlte_Stiefkinder\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"VBA-Funktionen &#8211; ausgew&auml;hlte Stiefkinder"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000064","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000064"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000064\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000064"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000064"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000064"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}