Access

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



 

• Funkcja Replace

Bardzo często mamy tekst, który nie spełnia naszych oczekiwań i chcemy jego zawartość dostosować do swoich potrzeb. Potrzebujemy zmienić średniki na przecinki, lub przecinki na średniki, usunąć znaki końca linii, podwójne czy też potrójne spacje zamienić na pojedynczą, zamienić polskie znaki diakrytyczne na ich odpowiedniki bez kropek, kresek i ogonków, bądź po prostu w tekście zrobiliśmy błąd ortograficzny który powieliliśmy w wielu miejscach i chcemy go poprawić.

Składnia funkcji Replace

Funkcja Replace wyszukuje w przekazanym ciąg znaków (tekście) określony znak (ciąg znaków) i zastępuje go nowym znakiem lub ciągiem znaków.

Replace(expression As String, find As String, replace As String, [start As Long = 1], [count As Long = -1],
           [compare As VbCompareMethod = vbBinaryCompare]) As String

Funkcji Replace ma następujące nazwane argumenty:

  Argument   Opis
expressionArgument obowiązkowy. Wyrażenie znakowe które może zawierać znak (ciąg znaków) do zamiany
findArgument obowiązkowy. Znak lub ciąg znaków przeznaczony do zamiany
replaceArgument obowiązkowy. Znak lub ciąg znaków który ma być zamieniony na szukany znak (ciąg znaków)
startArgument nieobowiązkowy. Wartość domyślna 1. Numer znaku w ciągu wejściowym od którego ma być rozpoczęte wyszukiwanie znaku (ciągu znaków) do zamiany.
Uwaga. Dla wartości większej od 1 funkcja ucina pierwsze (start-1) znaków .
countArgument nieobowiązkowy określający ilość zamian ciągów ma zostać wykonana. Dla domyślnej wartość -1 zamienione zostaną wszystkie wystąpienia szukanego znaku (ciągu znaków)
compareArgument nieobowiązkowy. Wyrażenie numeryczne określające sposów porównywania ciągów znaków. Jeśli argument compare jest równy Null, wystąpi błąd.

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 Replace wyszukuje w przekazanym ciąg znaków Expression znak (ciąg znaków) Find i zastępuje go znakiem lub ciągiem znaków replace. Zwraca ciąg znaków z wprowadzonymi zamianami, rozpoczynający się od pozycji określonej przez argument start aż do końca ciągu. Zwracany ciąg nie jest kopią wejściowego ciągu od początku do końca. Bardzie szczegółowy opis zwracanych wartości przez funkcję Replace znajduje się poniżej:

  Jeżeli   Funkcja Replace zwraca
expression jest ciągiem zerowej długośći ""Zwraca ciąg zerowej długośći ""
expression ma wartość NullZgłaszany jest błąd wykonania nr 94 „Nieprawidłowe użycie Null
find jest ciągiem zerowej długośći ""Zwraca kopię ciągu expression
replace jest ciągiem zerowej długośći ""Zwraca ciąg expression z usuniętymi wszystkimi wystąpieniami ciągu find
start > 1Zwraca przekształcony ciąg expression począwszy od znaku start
start > Len(expression)Zwraca ciąg zerowej długośći ""
count = 0Zwraca kopię ciągu expression

Słownik użytych terminów.



• argument
Stała, zmienna lub wyrażenie przekazywane do procedury.
• nazwany argument
Argument o nazwie wstępnie zdefiniowanej w bibliotece obiektowej. Zamiast podawania wartości argumentów w porządku ustalonym przez składnię, można użyć nazwanych argumentów, aby móc przypisać wartości w dowolnym porządku. Na przykład, załóżmy że dana jest metoda przyjmująca trzy argumenty:
JakasFunkcja nazwany_arg1, nazwany_arg2, nazwany_arg3
Do przypisania wartości do nazwanych argumentów można użyć następującej instrukcji:
JakasFunkcja nazwany_arg3 := 4, nazwany_arg2 := 5, nazwany_arg1 := 20
Zauważmy, że nazwane argumenty nie muszą występować w kolejności wynikającej ze składni metody.
• 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).
• 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.