Verketten von Zeichenfolgen in VBA

8

Ich führe eine Anwendung in Microsoft Access mit VBA geschrieben.

Ich blicke über meinen Code und habe gerade bemerkt, dass ich unterbewusst Strings zusammen mit dem Pluszeichen (+) anstelle des Ampersands verkettet habe. Es ist ein paar Jahre her, seit ich in VB6 codiert habe. Könnte dies zu Problemen führen?

Alles scheint in Ordnung und es wird nur ein paar Minuten dauern, um es zu reparieren, ich bin nur neugierig, ob ich technisch etwas falsch mache.

    
JMK 12.10.2011, 17:08
quelle

3 Antworten

12

Das Und-Zeichen ist explizit eine Zeichenfolgenoperation, während das Plus überladen ist:

%Vor%

Bei Zahlen wird das Pluszeichen hinzugefügt.

    
tcarvin 12.10.2011, 17:16
quelle
4

Einige Beispiele aus dem VBA-Sofortfenster (der Unterschied zwischen dem dritten und vierten ist besonders ärgerlich):

%Vor%     
phoog 13.10.2011 07:21
quelle
0

Dies kann zu Problemen führen.

Wenn Sie das Pluszeichen oder das kaufmännische Und-Zeichen zum Verketten von Zeichenfolgenwerten verwenden, sind die Ergebnisse identisch.

Wenn Sie ein Plus verwenden, um einen String mit einem Nicht-String-Wert zu verketten, wird ein Fehler

ausgelöst

Wenn Sie ein kaufmännisches Und-Zeichen verwenden, versucht vba, die Werte vor der Verkettung zu "stringifizieren".

So string_value + int_value + date_value wird Fehler und string_value & int_value & date_value funktioniert gut

    
Eddy 12.10.2011 17:21
quelle