poniedziałek, 2 lutego 2015

Łączenie tekstów- ampersand (&) vs. plus (+)

Łączenie tekstów to powszechne działanie w VBA. Teoretycznie do dyspozycji mamy dwa znaki złączające: ampersand: & oraz plus:+. W praktyce jednak nie każdy zdaje sobie sprawę z faktu, że w pewnych okolicznościach zamienne zastosowanie łączników da odmienne wyniki. I choć zagadnienie to dotyczy szczególnie operacji w środowisku Access VBA myślę, że warto pamiętać o różnicach szczególnie gdy pracować będziemy ze zmiennymi.

Ampersand łączyć będzie tekst w każdych okolicznościach i niezależnie od bieżącej wartości przechowywanej w zmiennej.

Plus łączyć będzie teksty tak długo jak zmienne będą przechowywać jakąkolwiek wartość, jeżeli jednak jedna ze zmiennych przechowywać będzie wartość Null to wynikiem złączenia z wykorzystaniem operatora plus również będzie Null.

Różnicę w działaniu operatorów najprościej będzie zaprezentować na poniższym przykładzie gdzie wykorzystane zostały znaki łączenia tekstu w pracy ze zmiennymi, w tym ze zmienną o wartości Null.
01Sub LaczenieTekstow()
02 
03    Dim A As String
04    Dim B As String
05    Dim C As Variant
06     
07    A = "Imię"
08    B = "Nazwisko"
09     
10    Debug.Print A & B   '>>ImięNazwisko
11    Debug.Print A + B   '>>ImięNazwisko
12    Debug.Print A & C   '>>Imię
13    Debug.Print A + C   '>>Imię
14     
15    'do tego momentu C miało domyślną wartość równą vbNullString
16     
17    C = Null
18    Debug.Print A & C   '>>Imię
19     
20    Debug.Print A + C   '>>Null !!!
21    Debug.Print C + A   '>>Null !!!
22     
23    Debug.Print A & B & C   '>>ImięNazwisko
24    Debug.Print A + B & C   '>>ImięNazwisko
25    Debug.Print A & B + C   '>>Imię
26     
27    Debug.Print C + A + B   '>>Null !!!
28 
29End Sub

Brak komentarzy:

Prześlij komentarz