Funcția InStr

Se aplică la
Access pentru Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Returnează o valoare variant (lungă) specificând poziția primei ocurențe a unui șir în cadrul altui șir.

Vedeți câteva exemple

Sintaxă

InStr([start, ] șir1, șir2 [, compară ] )

Sintaxa funcției InStr are următoarele argumente:

Argument Descriere
început Opțional. Expresie numerică ce setează poziția de pornire pentru fiecare căutare. Dacă este omisă, căutarea începe la poziția primului caracter. Dacă start conține Nul, apare o eroare. Argumentul de pornire este necesar dacă se specifică compararea .
șir1 Obligatoriu. Expresia șir în care se caută.
șir2 Obligatoriu. Expresie șir căutată.
compară Opțional. Specifică tipul de comparație a șirurilor. Dacă comparare este Nul, apare o eroare. Dacă comparare este omis, setarea OptionCompare determină tipul de comparație. Specificați un LCID (LocaleID) valid pentru a utiliza reguli specifice setărilor regionale în comparație.

Sfat

Generatorul de expresii are IntelliSense, astfel încât să puteți vedea ce argumente necesită expresia dvs.

Setări

Setările de comparare a argumentelor sunt:

Constantă Valoare Descriere
vbUseCompareOption -1 Efectuează o comparație utilizând setarea instrucțiunii Option Compare .
vbBinaryCompare 0 Efectuează o comparație binară.
vbTextCompare 1 Efectuează o comparație textuală.

Valorile returnate

If InStr returnează
șir1 este de lungime zero 0
șir1 is Null Nul
șir2 este de lungime zero pornire
șir2 is Null Nul
șir2 nu este găsit 0
șir2 se află în șir1 Poziția la care se găsește potrivirea
start > string2 0

Observații

Funcția InStrB este utilizată cu datele byte dintr-un șir. În loc să returneze poziția de caracter a primei ocurențe a unui șir în cadrul altui șir, InStrB returnează poziția în octet.

Exemple

Utilizarea funcției InStr într-o expresie Puteți utiliza InStr oriunde puteți utiliza expresii. De exemplu, dacă doriți să găsiți poziția primei perioade (.) într-un câmp care conține adrese IP (denumit IPAddress), puteți utiliza InStr pentru a o găsi, astfel:

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

Funcția InStr examinează fiecare valoare din câmpul IPAddress și returnează poziția primei perioade. Prin urmare, dacă prima parte a adresei IP este 10., funcția returnează valoarea 3.

Apoi, puteți utiliza alte funcții, care operează pe rezultatul funcției InStr , pentru a extrage porțiunea adresei IP care precede prima perioadă, astfel:

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

În acest exemplu, InStr(1,[IPAddress],".") Întoarce poziția primei perioade. Scăderea lui 1 determină câte caractere preced prima punctă, în acest caz, 2. Funcția Left extrage apoi același număr de caractere din partea stângă a câmpului IPAddress, returnând valoarea 10.

Use InStr in VBA code 

Notă

Exemplele care urmează demonstrează utilizarea acestei funcții într-un modul Visual Basic for Applications (VBA).

Acest exemplu utilizează funcția InStr pentru a returna poziția primei ocurențe a unui șir în cadrul altui șir.


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.

Consultați și

Funcțiile de șir și utilizarea acestora