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 [, comparare ] )

Sintaxa funcției InStr are următoarele argumente:

Argument Descriere
început Opțional. Expresie numerică care setează poziția de început pentru fiecare căutare. Dacă este omisă, căutarea începe la poziția primului caracter. Dacă start conține Nul, apare o eroare. Argumentul start este necesar dacă se specifică compararea .
șir1 Obligatoriu. Expresia șir în care se caută.
șir2 Obligatoriu. Expresia șir căutată.
Compara Opțional. Specifică tipul de comparație a șirurilor. Dacă compare este Null, apare o eroare. Dacă comparare este omisă, setarea OptionCompare determină tipul de comparație. Specificați un LCID valid (LocaleID) 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 argumentelor de comparare sunt:

Constantă Valoare Descriere
vbUseCompareOption -1 Efectuează o comparație utilizând setarea instrucțiunei Comparare opțiuni .
vbBinaryCompare 0 Efectuează o comparație binară.
vbTextCompare 1 Efectuează o comparație textuală.

Valori returnate

If InStr returnează
șir1 este de lungime zero 0
șir1 este Null Nul
șir2 este de lungime zero Începe
șir2 este Null Nul
șir2 nu s-a găsit 0
șir2 se găsește în șir1 Poziția în care se găsește potrivirea
pornire > șir2 0

Observații

Funcția InStrB este utilizată cu datele byte conținute într-un șir. În loc să returneze poziția caracterului primei apariții a unui șir în interiorul altuia, InStrB întoarce poziția octetului.

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 (numite IPAddress), puteți utiliza InStr pentru a-l găsi, astfel:

InStr(1,[ADRESĂPO],".")

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ă la ieșirea funcției InStr , pentru a extrage porțiunea de adresă IP care precedă prima perioadă, astfel:

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

În acest exemplu, InStr(1,[ADRESĂ IP],".") returnează poziția primei perioade. Scăderea numărului 1 determină câte caractere preced prima perioadă, în acest caz, 2. Funcția Left extrage apoi că multe caractere din partea stângă a câmpului IPAddress returnează valoarea 10.

Utilizarea InStr în codul VBA 

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 apariții a unui șir în interiorul 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