Access Anfänger: Zusammenfügen von Zeichenfolgen (String-Addition)

Aus DBWiki
Wechseln zu: Navigation, Suche

Aufgabenstellung

Ich möchte eine Zeichenfolge (String) und den Inhalt einer Variablen zu einer Gesamt-Zeichenfolge zusammenfügen (String-Addition). Die Variable kann entweder den Datentyp Text (String) oder Zahl haben. Das Zusammenfügen geschieht grundsätzlich mittels des Verkettungsoperators & (Kaufmanns-Und, engl. Ampersand).

Einfache String-Addition

Zusammenfügen einer Zeichenfolge und dem Inhalt einer Variablen

  • Addition eines Strings und einer Zahl
   Dim lngZahl As Long
   Dim strText As String
 
   lngZahl = 15
   strText = "Dies ist ein Text und die Zahl " & lngZahl
   MsgBox strText

Hinweis: Access konvertiert die Zahl automatisch in einen String, wenn die Zahl zu einem String hinzugefügt (addiert) wird.

  • Addition eines Strings und eines Strings
   Dim strText1 As String
   Dim strText As String
 
   strText1 = "Inhalt der Text-Variablen"
   strText = "Dies ist ein Text und der " & strText1
   MsgBox strText

String innerhalb eines Strings

Einbettung einer Long- oder String-Variablen als Argument innerhalb eines Strings

   Dim strSQL As String

1. SQL-String mit einer Zahl als Argument

  • Direkte Eingabe der Zahl:
   strSQL = "SELECT * FROM Kunden WHERE KundenNr = 92"
  • Übergabe der Zahl als Variable:
   Dim lngKdNr As Long
 
   lngKdNr = 92
   strSQL = "SELECT * FROM Kunden WHERE KundenNr = " & lngKdNr

2. SQL-String mit einem String als Argument
Das String-Argument muss in diesem Fall in Hochkommata (einfache Anführungszeichen) gesetzt werden, da hier ein String in einen anderen Strings eingebettet wird.

  • Direkte Angabe des Strings:
   strSQL = "SELECT * FROM Kunden WHERE Kontaktperson = 'Maria Anders'"
  • Übergabe des Strings mittels einer Variablen:
   Dim strName As String
 
   strName = "Maria Anders"
   strSQL = "SELECT * FROM Kunden WHERE Kontaktperson = '" & strName & "'"
  • Übergabe des Strings mittels eines Steuerelementinhalts:
   strSQL = "SELECT * FROM Kunden WHERE Kontaktperson = '" & Me!MeinNamefeld & "'"

3. String-Addition unter Verwendung des Like-Operators (Stern * als Platzhalter):
Beispiel: Zusammenstellung eines Formularfilters

  • Schreibweise ohne Variable:
   Forms!Kunden.Filter = "Kontaktperson Like '*Maria*'"
  • Schreibweise mit einer Variablen:
   Dim strSuchbegriff as String
 
   strSuchbegriff = "Maria"
   Forms!Kunden.Filter = "Kontaktperson Like '*" & strSuchbegriff & "*'"

String-Addition mit dem +-Operator

Access akzeptiert alternativ auch die Verwendung des +-Operators für die Verkettung von Strings. Das ist in bestimmten Anwendungsfällen von Vorteil.

Regel: Wenn bei Operation einer der Operatoren Null ist, ist das Ergebnis der Operation auch Null (Inhalt der Klammer). Weil der &-Operator vor der Verkettung alle seine Argumente in einen String umwandelt, stellt er eine Ausnahme dar, auf der folgende Beispiele beruhen.


Beispiel 1:

   Dim strAdresse As String
 
   strAdresse = Trim$(Me.Strasse & " " & Me.Hausnummer) & (", " + Me.Ort)

oder alternativ: Verwendung als Steuerelementinhalt:

=Glätten([Strasse] & " " & [Hausnummer]) & (", " + [Ort])

Erklärung:
Wenn der Ort nicht existiert, also Me.Ort Is Null ist, wird der ganze Inhalt der Klammer (", " + Me.Ort) zu Null, und wird daher nicht angezeigt. Das bedeutet auch, dass das Komma und das Leerzeichen vor dem Ort nicht angezeigt werden.
Bei der Verwendung des &-Operators würde das Komma und das Leerzeichen auch bei fehlendem Ort angezeigt werden.


Beispiel 2:

   Dim strMitarbeiter As String
 
   strMitarbeiter = (Me.NachnameVorname + ", ") & ("(" + Me.Abteilung + ") ")

Auch die nicht benötigten Klammern bei leerem Feld Abteilung werden nicht angezeigt.

Wikilinks