Access

  MS Access 2010+  |  Wbudowane funkcje MS Access  |   VBA 7.0



 

• Funkcja InStr. Czy w tekście znajduje się znak (ciąg znaków).

Bardzo często mamy tekst, który musimy sprawdzić czy nie zawiera nieprawidłowych znaków, bądź wyrazów. Czasami musimy policzyć ile razy znak, czy wyraz występuje w naszym tekście. Wiedząc, że tekst zawiera szukaną frazę możemy dokonać poprawek w tekście za pomocą wbudowanych funkcji Mid, Left, Right lub Replace.

Składnia funkcji InStr

Funkcja InStr zwraca wartość typu Variant podtyp Long określającą miejsce pierwszego wystąpienia poszukiwanego ciągu znaków string2 w drugim, przeszukiwanym ciągu znaków string1 począwszy od znaku określonego w argumencie start.

InStr([start As Long = 1], [string1 As String], [string2 As String],
         [compare As VbCompareMethod = vbBinaryCompare])

Funkcji InStr ma następujące argumenty:

  Argument   Opis
start Argument nieobowiązkowy. Wartość domyślna 1. Wyrażenie numeryczne określające początkowy znak od którego zostanie rozpoczęte przeszukiwanie ciągu. Jeśli argument ten zostanie pominięty (nie należy wtedy wstawiać pojedynczego przecinka w celu oddzielenia argumenu string1), przeszukiwanie zaczyna się od pierwszego znaku. Jeśli argument start jest równy Null, wystąpi błąd wykonania nr 94 „Nieprawidłowe użycie Null
Uwaga. Argument start jest obowiązkowy, jeśli określony jest argument compare.
string1Argument obowiązkowy. Wyrażenie znakowe które będzie przeszukiwane.
string2Argument obowiązkowy. Wyrażenie znakowe, które będzie wyszukiwane w ciągu wejściowym string1
compare Argument nieobowiązkowy. Wyrażenie numeryczne określające typ porównywania ciągów znaków. Jeśli argument compare jest równy Null, wystąpiwystąpi błąd wykonania nr 94 „Nieprawidłowe użycie Null”.

Argument compare może przyjmować wartości:

  Stała   WartośćOpis
vbUseCompareOption-1Porównanie ciągów znaków wykonane zostanie zgodnie z ustawieniami instrukcji Option Compare.
vbBinaryCompare0Wartość domyślna. Oznacza porównanie binarne, rozróżniane są wielkie i małe litery.
vbTextCompare1Porównanie tekstowe. Wielkość liter nie ma znaczenia
vbDatabaseCompare2 Wartość 2 ma sens tylko przy korzystaniu z bazy danych Microsoft Access i służy do przeprowadzenia porównania na podstawie informacji zawartej w bazie danych

Uwaga. Powyższe stałe są zdefiniowane przez Visual Basic for Applications i mogą być stosowane w dowolnym miejscu kodu programu zamiast ich rzeczywistych wartości.

Zwracane wartości

Funkcja InStr wyszukuje w przekazanym ciągu znaków string1, począwszy od pozycji określonej w argumencie start, znak (ciąg znaków) string2. Przy powodzeniu zwraca jego pozycję w przeszukiwanym ciągu znaków string1. Jeżeli szukany ciąg znaków  string2 nie występuje w przeszukiwanym ciągu zwraca 0. Bardzie szczegółowy opis zwracanych wartości przez funkcję InStr znajduje się poniżej:

  Jeżeli   Funkcja InStr zwraca
string1 jest ciągiem zerowej długośći ""Zwraca 0
string1 ma wartość NullZgłaszany jest błąd wykonania nr 94 „Nieprawidłowe użycie Null
string2 jest ciągiem zerowej długośći ""Zwraca wartość argumentu start
string2 ma wartość NullZgłaszany jest błąd wykonania nr 94 „Nieprawidłowe użycie Null
string2 nie został znalezionyZwraca 0
string2 został znalezionyZwraca pozycję, na której znaleziono pasujący ciąg string2
start > Len(string1)Zwraca 0

Uwaga. Funkcja InStrB jest używana do danych bajtowych zawartych w ciągu znaków. Zamiast zwracać pozycję znakową w przeszukiwanym ciągu znaków string1, na której występuje szukany ciąg znaków string2 funkcja InStrB zwraca pozycję bajtu na której znaleziono szukany ciąg.

Słownik użytych terminów.



• argument
Stała, zmienna lub wyrażenie przekazywane do procedury.
• wyrażenie numeryczne
Każde wyrażenie, które daje w wyniku liczbę. Może być to kombinacja zmiennych, stałych, funkcji i operatorów.
• Null
Wartość wskazująca, że dana zmienna nie zawiera żadnych poprawnych danych. Wartość ta jest wynikiem jawnego przypisania wartości Null do danej zmiennej lub wynikiem dowolnej operacji przeprowadzonej pomiędzy wyrażeniami zawierającymi wartość Null.
• wyrażenie znakowe
Dowolne wyrażenie o wartości stanowiącej sekwencję następujących po sobie znaków. Do elementów wyrażenia znakowego może należeć funkcja zwracająca ciąg znaków, literał znakowy, stała znakowa, zmienna znakowa, ciąg znaków typu Variant lub funkcja zwracająca ciąg znaków typu Variant  (VarType = 8 (vbString).
• Porównanie ciągów znaków
Porównanie dwóch sekwencji znaków. Option Compare określa, czy porównywanie ma przebiegać w trybie binarnym czy tekstowym. W trybie binarnym wielkie litery i małe są różnymi znakami, ale w trybie tekstowym nie są rozróżniane wielkie i małe liter.