Funkcja InStr

Dotyczy
Access dla Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Zwraca wartość typu wariant (długa), określającą pozycję pierwszego wystąpienia jednego ciągu w innym ciągu.

Zobacz kilka przykładów

Składnia

InStr([start, ] ciąg1, ciąg2 [, porównanie ] )

W składni funkcji InStr występują następujące argumenty:

Argument Opis
rozpoczynanie Argument opcjonalny. Wyrażenie liczbowe, które ustawia pozycję początkową dla każdego wyszukiwania. Jeśli zostanie pominięte, wyszukiwanie rozpocznie się od pierwszego znaku. Jeśli argument start zawiera wartość Null, występuje błąd. Argument początek jest wymagany, jeśli określono porównanie .
ciąg1 Argument wymagany. Przeszukiwane wyrażenie ciągu.
ciąg2 Argument wymagany. Szukane wyrażenie ciągu.
Porównać Argument opcjonalny. Określa typ porównania ciągów. Jeśli argument porównaj ma wartość Null, występuje błąd. Jeśli argument porównanie zostanie pominięty, ustawienie OptionCompare określa typ porównania. Określ prawidłowy identyfikator LCID (LocaleID), aby w porównaniu używać reguł specyficznych dla ustawień regionalnych.

Porada

Konstruktor wyrażeń ma technologię IntelliSense, dzięki czemu możesz zobaczyć, jakich argumentów wymaga wyrażenie.

Ustawienia

Ustawienia argumentów porównania to:

Stała Wartość Opis
vbUseCompareOption -1 Wykonuje porównanie za pomocą ustawienia instrukcji Porównaj opcje .
vbBinaryCompare 0 Wykonuje porównanie binarne.
vbTextCompare 1 Wykonuje porównanie tekstowe.

Zwracane wartości

If Funkcja InStr zwraca wartość
ciąg1 ma zerową długość 0
ciąg1 to Null Null
ciąg2 ma zerową długość Uruchomić
ciąg2 to Null Null
ciąg2 nie został odnaleziony 0
ciąg2 znajduje się w ciągu1 Położenie, w którym znajduje się dopasowanie
ciąg początkowy2 > 0

Uwagi

Funkcja InStrB jest używana z danymi bajtowymi zawartymi w ciągu. Zamiast zwracać pozycję znaku pierwszego wystąpienia jednego ciągu w drugim, funkcja InStrB zwraca pozycję bajtu.

Przykłady

Używanie funkcji InStr w wyrażeniu InStr można używać wszędzie tam, gdzie można używać wyrażeń. Jeśli na przykład chcesz znaleźć pozycję pierwszego kropki (.) w polu zawierającym adresy IP (o nazwie IPAddress), możesz użyć funkcji InStr , aby ją znaleźć, w następujący sposób:

InStr(1;[adres IPAddress]".")

Funkcja InStr sprawdza każdą wartość w polu IPAddress i zwraca pozycję pierwszego okresu. Dlatego jeśli pierwsza część adresu IP ma wartość 10., funkcja zwraca wartość 3.

Następnie można użyć innych funkcji działających na podstawie danych wyjściowych funkcji InStr , aby wyodrębnić część adresu IP poprzedzającą pierwszy okres, na przykład:

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

W tym przykładzie InStr(1;[adres IPAddress]".") zwraca pozycję pierwszego okresu. Odejmowanie 1 określa liczbę znaków poprzedzających pierwszy okres, w tym przypadku 2. Następnie funkcja Lewy wyodrębnia tę liczbę znaków z lewej części pola IPAddress, zwracając wartość 10.

Używanie kodu VBA inStr w języku VBA 

Uwaga

Poniższe przykłady przedstawiają sposób użycia tej funkcji w module języka Visual Basic for Applications (VBA).

W tym przykładzie użyto funkcji InStr w celu zwrócenia pozycji pierwszego wystąpienia jednego ciągu w innym.


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.

Zobacz również

Funkcje tekstowe i ich zastosowanie