InStr (Funktion)

Gilt für
Access für Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Gibt einen Wert des Typs Variant (Long) zurück, der die Position des ersten Auftretens einer Zeichenfolge innerhalb einer anderen Zeichenfolge angibt.

Hier sind einige Beispiele

Syntax

InStr([start, ] string1, string2 [, compare ] )

Die Syntax der InStr-Funktion weist die folgenden Argumente auf:

Argument Beschreibung
Anfang Optional. Numerischer Ausdruck, der die Anfangsposition für jede Suche festlegt. Fehlt dieses Argument, beginnt die Suche an der ersten Zeichenposition. Enthält Anfang den Nullwert, tritt ein Fehler auf. Das Argument Anfang ist erforderlich, wenn Vergleich angegeben ist.
Zeichenfolge1 Erforderlich. Zeichenfolgenausdruck, der durchsucht wird.
Zeichenfolge2 Erforderlich. Zeichenfolgenausdruck, nach dem gesucht wird.
Vergleich Optional. Gibt den Typ des Zeichenfolgenvergleichs an. Enthält Vergleich den Nullwert, tritt ein Fehler auf. Wenn vergleich nicht angegeben wird, bestimmt die OptionCompare-Einstellung den Typ des Vergleichs. Geben Sie eine gültige LCID (LocaleID) an, damit gebietsschemaspezifische Regeln im Vergleich verwendet werden.

Tipp

Der Ausdrucks-Generator verfügt über IntelliSense, sodass Sie sehen können, welche Argumente Ihr Ausdruck benötigt.

Einstellungen

Die Einstellungen für das Argument Zeichenvergleich lauten:

Konstante Wert Beschreibung
vbUseCompareOption -1 Verwendet für einen Vergleich die Einstellung der Option Compare-Anweisung.
vbBinaryCompare 0 Führt einen binären Vergleich durch.
vbTextCompare 1 Führt einen Textvergleich durch.

Rückgabewerte

Wenn InStr-Rückgabe
Zeichenfolge1 hat Länge 0 (null) 0
Zeichenfolge1 ist Nullwert Null
Zeichenfolge2 hat Länge 0 (null) Anfang
Zeichenfolge2 ist Nullwert Null
Zeichenfolge2 nicht gefunden 0
Zeichenfolge2 in Zeichenfolge1 gefunden Die Position, an der eine Übereinstimmung gefunden wurde
Zeichenfolge starten2 > 0

Hinweise

Die InStrB-Funktion wird mit Bytedaten verwendet, die in einer Zeichenfolge enthalten sind. Statt die Zeichenposition zurückzugeben, an der eine Zeichenfolge erstmals innerhalb einer anderen auftritt, gibt InStrB die Byteposition zurück.

Beispiele

Verwenden der InStr-Funktion in einem Ausdruck Sie können InStr überall dort verwenden, wo Sie Ausdrücke verwenden können. Wenn Sie beispielsweise die Position des ersten Punkts (.) in einem Feld suchen möchten, das IP-Adressen (namens IPAddress) enthält, können Sie ihn mithilfe von InStr wie folgt suchen:

InStr(1,[IPAddress],".")

Die InStr-Funktion wertet jeden Wert im Feld "IPAddress" aus und gibt die Position des ersten Punkts zurück. Wenn also der erste Teil der IP-Adresse 10. ist, gibt die Funktion den Wert 3 zurück.

Sie können dann weitere Funktionen verwenden, die die Ausgabe der InStr-Funktion verarbeiten, um den Teil der IP-Adresse zu extrahieren, die vor dem ersten Punkt steht. Beispielsweise so:

Left([IPAddress],(InStr(1,[IPAddress],".")-1))

In diesem Beispiel gibt InStr(1,[IPAddress],".") die Position des ersten Punkts zurück. Durch Subtrahieren von 1 wird ermittelt, wie viele Zeichen vor dem ersten Punkt stehen (in diesem Fall 2). Die Left-Funktion extrahiert dann die entsprechende Anzahl Zeichen aus dem linken Teil des Felds "IPAddress", so dass sie den Wert "10" zurückgibt.

Verwenden von InStr in VBA-Code 

Hinweis

Die folgenden Beispiele zeigen die Verwendung dieser Funktion in einem VBA-Modul (Visual Basic for Applications).

In diesem Beispiel wird die InStr-Funktion verwendet, um die Position zurückzugeben, an der eine Zeichenfolge erstmals innerhalb einer anderen Zeichenfolge auftritt.


Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"    ' String to search in.
SearchChar = "P"    ' Search for "P".
' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(4, SearchString, SearchChar, 1)    
' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(1, SearchString, SearchChar, 0)
' Comparison is binary by default
' (last argument is omitted).
MyPos = Instr(SearchString, SearchChar)    ' Returns 9.
MyPos = Instr(1, SearchString, "W")    ' Returns 0.

Siehe auch

Zeichenfolgenfunktionen und ihre Verwendung