Leitfaden zur Ausdruckssyntax

Gilt für
Access für Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Wenn Sie Microsoft Access verwenden, müssen Sie häufig mit Werten arbeiten, die nicht direkt in Ihren Daten enthalten sind. Beispielsweise möchten Sie die Mehrwertsteuer bei einem Auftrag oder den Gesamtwert des eigentlichen Auftrags berechnen. Sie können diese Werte mithilfe von Ausdrücken berechnen. Um Ausdrücke verwenden zu können, schreiben Sie diese mit der geeigneten Syntax. Syntax ist die Gruppe von Regeln, durch die die Wörter und Symbole in einem Ausdruck richtig kombiniert werden. Anfänglich sind Ausdrücke in Access etwas schwierig zu lesen. Aber mit einem guten Verständnis der Ausdruckssyntax und etwas Übung wird dies erheblich einfacher.

Inhalt dieses Artikels

Übersicht über Ausdrücke

Ein Ausdruck stellt eine Kombination aus einigen oder allen der folgenden Elemente dar: integrierte oder benutzerdefinierte Funktionen, Bezeichner, Operatoren, Werte und Konstanten, deren Ergebnis ein einzelner Wert ist.

Die Komponenten eines Ausdrucks

Der folgende Ausdruck enthält z. B. gebräuchliche Komponenten:

=Sum([Purchase Price])*0.08 
  • Sum() ist eine integrierte Funktion
  • [Purchase Price] ist ein Bezeichner
  • * ist ein mathematischer Operator
  • 0.08 ist eine Konstante

Dieser Ausdruck kann zum Berechnen der Mehrwertsteuer für eine Gruppe von Elementen in einem Textfeld in einem Formularfuß oder Berichtsfuß verwendet werden.

Ausdrücke können wesentlich komplexer oder erheblich einfacher sein als in diesem Beispiel. Dieser boolesche Ausdruck besteht beispielsweise nur aus einem Operator und einer Konstante:

>0

Dieser Ausdruck gibt Folgendes zurück:

  • True , wenn sie mit einer Zahl verglichen wird, die größer als 0 ist.
  • False , wenn sie mit einer Zahl verglichen wird, die kleiner als 0 ist.

Sie können diesen Ausdruck in der Gültigkeitsregel-Eigenschaft eines Steuerelements oder Tabellenfelds verwenden, um sicherzustellen, dass nur positive Werte eingegeben werden. Ausdrücke werden an zahlreichen Stellen verwendet, um Berechnungen durchzuführen, Zeichen zu ändern oder Daten zu testen. Tabellen, Abfragen, Formulare, Berichte und Makros verfügen alle über Eigenschaften, die einen Ausdruck akzeptieren. Sie können Ausdrücke z. B. in den Eigenschaften Steuerelementinhalt und Standardwert für ein Steuerelement verwenden. Sie können Ausdrücke auch in der Gültigkeitsregel-Eigenschaft für ein Tabellenfeld verwenden.

Seitenanfang

Komponenten von Ausdrücken

Um einen Ausdruck zu bilden, kombinieren Sie Bezeichner, indem Sie Funktionen, Operatoren, Konstanten und Werte verwenden. Jeder gültige Ausdruck muss mindestens eine Funktion oder mindestens einen Bezeichner enthalten und kann auch Konstanten oder Operatoren enthalten. Sie können einen Ausdruck auch als Teil eines anderen Ausdrucks verwenden– in der Regel als Argument einer Funktion. Dies wird als Verschachtelung eines Ausdrucks bezeichnet.

  • Bezeichner Die allgemeine Form ist:

    [Collection name]![Object name].[Property name]
    

    Sie müssen nur ausreichend viele Teile eines Bezeichners angeben, damit er im Kontext Ihres Ausdrucks eindeutig wird. Es ist nicht ungewöhnlich, dass ein Bezeichner das Format [Object name]hat.

  • Funktionen Die allgemeine Form ist:

    Function(argument, argument)
    

    Eines der Argumente ist in der Regel ein Bezeichner oder ein Ausdruck. Bei einigen Funktionen sind keine Argumente erforderlich. Bevor Sie eine bestimmte Funktion verwenden, sehen Sie sich die Syntax dieser Funktion an. Weitere Informationen finden Sie unter Funktionen (angeordnet nach Kategorie).

  • Operatoren Die allgemeine Form ist:

    Identifier operator identifier
    

    Bei dieser Form gibt es Ausnahmen, wie es im Abschnitt Operatoren beschrieben ist.

  • Konstanten Die allgemeine Form ist:

    Identifier comparison_operator constant
    
  • Werte Werte können an vielen Stellen in einem Ausdruck auftreten.

Seitenanfang

Objekte, Sammlungen und Eigenschaften

Alle Tabellen, Abfragen, Formulare, Berichte und Felder in einer Access-Datenbank werden individuell als Objekte bezeichnet. Jedes Objekt hat einen Namen. Einige Objekte sind bereits benannt, z. B. die Tabelle "Kontakte" in einer Datenbank, die aus der Microsoft Office Access-Vorlage "Kontakte" erstellt wurde. Wenn Sie ein neues Objekt erstellen, geben Sie ihm einen Namen.

Die Gruppe aller Elemente eines bestimmten Objekttyps wird als Sammlung bezeichnet. So ist beispielsweise die Gruppe aller Tabellen in einer Datenbank eine Sammlung. Einige Objekte, die ein Element in einer Sammlung Ihrer Datenbank sind, können ebenfalls Sammlungen sein, die andere Objekte enthalten. So ist beispielsweise ein Tabellenobjekt eine Sammlung, die Feldobjekte enthält.

Objekte haben Eigenschaften, die ihre Merkmale beschreiben und eine Möglichkeit zu deren Änderung bieten. Beispiel: Ein Abfrageobjekt hat die Eigenschaft Standardansicht, die sowohl beschreibt als auch Ihnen ermöglicht anzugeben, wie die Abfrage bei der Ausführung angezeigt werden soll.

Das folgende Diagramm veranschaulicht die Beziehung zwischen Sammlungen, Objekten und Eigenschaften:

Beziehungen von Sammlungen zu Objekten und Eigenschaften 3 A-Eigenschaft


2 Ein Objekt


1 Eine Sammlung

Seitenanfang

Bezeichner

Wenn Sie ein Objekt, eine Sammlung oder eine Eigenschaft in einem Ausdruck verwenden, verweisen Sie mithilfe eines Bezeichners auf das betreffende Element. Ein Bezeichner enthält den Namen des Elements, das Sie identifizieren, und außerdem den Namen des Elements, zu dem es gehört. So enthält beispielsweise der Bezeichner für ein Feld den Namen des Felds und den Namen der Tabelle, zu der das Feld gehört. Hier ein Beispiel für einen solchen Bezeichner:

[Customers]![BirthDate]

In einigen Fällen fungiert der Name eines Elements selbst als Bezeichner. Dies trifft zu, wenn der Name des Elements im Kontext des von Ihnen erstellten Ausdrucks eindeutig ist. Der Rest des Bezeichners wird durch den Kontext impliziert. Wenn Sie z. B. eine Abfrage entwerfen, die nur eine einzige Tabelle verwendet, fungieren die Feldnamen allein als Bezeichner, weil die Feldnamen in einer Tabelle eindeutig sein müssen. Weil Sie nur eine Tabelle verwenden, ist der Tabellenname in einem Bezeichner, mit dem Sie in der Abfrage auf ein Feld verweisen, impliziert.

In anderen Fällen müssen Sie im Hinblick auf die Teile eines Bezeichners explizit sein, damit ein Verweis funktioniert. Dies trifft zu, wenn ein Bezeichner im Kontext des Ausdrucks nicht eindeutig ist. Bei Mehrdeutigkeit müssen Sie genügend Teile des Bezeichners explizit benennen, um ihn im Kontext eindeutig zu machen. Angenommen, Sie entwerfen eine Abfrage, die eine Tabelle mit dem Namen „Produkte“ und eine Tabelle mit dem Namen „Order“ verwendet, und beide Tabellen haben ein Feld mit dem Namen ProductID. In einem solchen Fall muss der Bezeichner, den Sie in der Abfrage verwenden, um auf eines der beiden ProductID-Felder zu verweisen, zusätzlich zum Feldnamen auch den Tabellennamen enthalten. Zum Beispiel:

[Products]![ProductID]

Bezeichneroperatoren Es gibt drei Operatoren, die Sie in einem Bezeichner verwenden können:

  • Der Bang-Operator (!)
  • Der Punktoperator (.)
  • Der Operator für eckige Klammern ([ ])

Sie verwenden diese Operatoren, indem Sie jeden Teil des Bezeichners in eckige Klammern setzen und dann die Teile entweder mithilfe eines Ausrufezeichen- oder eines Punktoperators verknüpfen. Beispielsweise kann ein Bezeichner für ein Feld mit dem Namen Nachname in einer Tabelle mit dem Namen Employees als [Employees]![Last Name]ausgedrückt werden. Der Ausrufezeichenoperator informiert Access, dass das nachfolgende Element ein Objekt ist, das zu der Sammlung gehört, die dem Operator vorangestellt ist. In diesem Fall ist "[Nachname]" ein Feldobjekt, das zur Sammlung "[Mitarbeiter]" gehört, die selbst ein Tabellenobjekt ist.

Genau genommen müssen Sie nicht immer eckige Klammern um einen Bezeichner oder Teilbezeichner eingeben. Wenn der Bezeichner keine Leerzeichen oder anderen Sonderzeichen enthält, fügt Access die eckigen Klammern beim Lesen des Ausdrucks automatisch hinzu. Es ist jedoch eine bewährte Methode, die Klammern selbst einzugeben. Dies hilft Ihnen, Fehler zu vermeiden, und dient auch als visueller Hinweis darauf, dass ein bestimmter Teil eines Ausdrucks ein Bezeichner ist.

Seitenanfang

Funktionen, Operatoren, Konstanten und Werte

Um einen Ausdruck zu erstellen, benötigen Sie mehr als Nur-Bezeichner– Sie müssen eine Aktion ausführen. Mithilfe von Funktionen, Operatoren und Konstanten führen Sie Aktionen in einem Ausdruck aus.

Funktionen

Eine Funktion ist eine Prozedur, die Sie in einem Ausdruck verwenden können. Bei einigen Funktionen, z. B. Datum, ist keine Eingabe erforderlich, damit sie funktionieren. Die meisten Funktionen allerdings erfordern eine Eingabe, die sogenannten Argumente.

Im Beispiel am Anfang dieses Artikels verwendet die DatePart-Funktion zwei Argumente: ein Intervallargument mit dem Wert "yyyy" und ein date-Argument mit dem Wert [Customers]![BirthDate]. Die DatTeil-Funktion erfordert mindestens diese beiden Argumente (Intervall und Datum), kann jedoch bis zu vier Argumente akzeptieren.

Die nachstehende Liste zeigt einige Funktionen, die in Ausdrücken häufig verwendet werden. Klicken Sie auf den Link für die einzelnen Funktionen, um weitere Informationen zu der Syntax anzuzeigen, die bei der jeweiligen Funktion verwendet wird.

  • Die Funktion Datum dient zum Einfügen des aktuellen Systemdatums in einen Ausdruck. Sie wird im Allgemeinen mit der Format-Funktion und außerdem mit Feldbezeichnern für Felder verwendet, die Datums-/Uhrzeitdaten enthalten.

    =Date()
    
  • Die DatePart-Funktion wird verwendet, um einen Teil eines Datums zu bestimmen oder zu extrahieren– in der Regel ein Datum, das von einem Feldbezeichner abgerufen wird, aber manchmal ein Datumswert, der von einer anderen Funktion zurückgegeben wird, z. B. Date.

    DatePart ( "yyyy", Date())
    
  • Die DateDiff-Funktion wird verwendet, um die Differenz zwischen zwei Datumsangaben zu bestimmen– in der Regel zwischen einem Datum, das von einem Feldbezeichner abgerufen wird, und einem Datum, das mithilfe der Date-Funktion abgerufen wird.

    =DateDiff("d", Now(), [Orders].[ReceiveBefore])-10 
    
  • Die Funktion Format dient zum Anwenden eines Formats auf einen Bezeichner und die Ergebnisse einer anderen Funktion.

    Format([Date],"ww")=Format(Now(),"ww")-1 
    
  • Die IIf-Funktion wird verwendet, um einen Ausdruck als true oder false auszuwerten und dann einen Wert zurückzugeben, wenn der Ausdruck als true ausgewertet wird, und einen anderen Wert, wenn der Ausdruck als false ausgewertet wird.

    =IIf([CountryRegion]="Italy", "Italian", "Some other language")
    
  • Die InStr-Funktion wird verwendet, um nach der Position eines Zeichens oder einer Zeichenfolge in einer anderen Zeichenfolge zu suchen. Die gesuchte Zeichenfolge wird in der Regel aus einem Feldbezeichner abgerufen.

    InStr(1,[IPAddress],".")
    
  • Die Funktionen Links, Teil und Rechts dienen zum Extrahieren von Zeichen aus einer Zeichenfolge – beginnend mit dem Zeichen ganz links (Links), einer bestimmten Position in der Mitte (Teil) oder dem Zeichen ganz rechts (Rechts). Sie werden üblicherweise mit der InStr-Funktion verwendet. Die Zeichenfolge, aus der diese Funktionen Zeichen extrahieren, wird in der Regel aus einem Feldbezeichner abgerufen.

    Left([ProductName], 1)
    Right([AssetCode], 2) 
    Mid([Phone],2,3) 
    
    

Eine Liste von Funktionen finden Sie unter Funktionen (angeordnet nach Kategorie).

Operatoren

Ein Operator ist ein Wort oder ein Symbol, das eine bestimmte arithmetische oder logische Beziehung zwischen den anderen Elementen eines Ausdrucks angibt. Operatoren können Folgendes sein:

  • Arithmetik, z. B. das Pluszeichen (+).
  • Vergleich, z. B. das Gleichheitszeichen (=).
  • Logisch, z Not. B. .
  • Verkettung, z &. B. .
  • Speziell, z. B Like. .

Operatoren werden im Allgemeinen verwendet, um eine Beziehung zwischen zwei Bezeichnern anzugeben. In der nachstehenden Tabelle werden die Operatoren beschrieben, die Sie in Access-Ausdrücken verwenden können.

Arithmetische

Sie verwenden die arithmetischen Operatoren, um einen Wert aus zwei oder mehr Zahlen zu berechnen oder um das Vorzeichen einer Zahl von positiv in negativ zu ändern.

Operator Zweck Beispiel
+ Addiert zwei Zahlen. [Zwischensumme]+[Mehrwertsteuer]
- Ermittelt die Differenz zwischen zwei Zahlen oder gibt den negativen Wert einer Zahl an. [Preis]-[Rabatt]
* Multipliziert zwei Zahlen. [Menge]*[Preis]
/ Dividiert die erste Zahl durch die zweite Zahl. [Summe]/[Artikelzahl]
\ Rundet beide Zahlen auf ganze Zahlen, dividiert die erste Zahl durch die zweite Zahl, und kürzt dann das Ergebnis auf eine ganze Zahl. [Angemeldet]\[Räume]
Mod Dividiert die erste Zahl durch die zweite Zahl und gibt nur den Rest zurück. [Angemeldet] Mod [Räume]
^ Potenziert eine Zahl mit einem Exponenten. Zahl ^ Exponent

Vergleich

Sie verwenden die Vergleichsoperatoren, um Werte zu vergleichen und ein Ergebnis zurückzugeben, das "Wahr", "Falsch" oder "Null" (ein unbekannter Wert) ist.

Operator Zweck
< Ermittelt, ob der erste Wert kleiner als der zweite Wert ist.
<= Ermittelt, ob der erste Wert kleiner als oder gleich dem zweiten Wert ist.
> Ermittelt, ob der erste Wert größer als der zweite Wert ist.
>= Ermittelt, ob der erste Wert größer als oder gleich dem zweiten Wert ist.
= Ermittelt, ob der erste Wert gleich dem zweiten Wert ist.
<> Ermittelt, ob der erste Wert ungleich dem zweiten Wert ist.

Wenn entweder der erste Wert oder der zweite Wert ist, lautet Nulldas Ergebnis in allen Fällen ebenfalls Null. Da Null einen unbekannten Wert darstellt, ist auch das Ergebnis eines Vergleichs mit Null unbekannt.

Logisch

Sie verwenden die logischen Operatoren, um zwei Werte zu kombinieren und ein Ergebnis vom Typ "Wahr", "Falsch" oder "Null" zurückzugeben. Möglicherweise werden auch die logischen Operatoren angezeigt, die als boolesche Operatoren bezeichnet werden.

Operator Verwendung Beschreibung
And Ausdr1 Und Ausdr2 "Wahr", wenn "Ausdr1" und "Ausdr2" wahr sind.
Or Ausdr1 Oder Ausdr2 "Wahr", wenn entweder "Ausdr1" oder "Ausdr2" wahr ist.
Eqv Ausdr1 Äqv Ausdr2 "Wahr", wenn sowohl "Ausdr1" als auch "Ausdr2" wahr sind oder wenn sowohl "Ausdr1" als auch "Ausdr2" falsch sind.
Not Nicht Ausdr "Wahr", wenn "Ausdr" nicht wahr ist.
Xor Ausdr1 Xoder Ausdr2 "Wahr", wenn entweder "Ausdr1" wahr ist oder "Ausdr2" wahr ist, aber nicht beide.

Verkettungsoperatoren

Sie verwenden die Verkettungsoperatoren, um zwei Textwerte in einer Zeichenfolge zu kombinieren.

Operator Verwendung Beschreibung
& Zeichenfolge1 & Zeichenfolge2 Kombiniert zwei Zeichenfolgen in einer Zeichenfolge.
+ Zeichenfolge1 + Zeichenfolge2 Kombiniert zwei Zeichenfolgen in einer Zeichenfolge und gibt Nullwerte weiter.

Spezielle Operatoren

Sie verwenden die speziellen Operatoren entsprechend der Beschreibung in der nachstehenden Tabelle.

Operator Beschreibung Weitere Informationen
Is Null or Is Not Null Bestimmt, ob ein Wert null oder nicht null ist.
Like "pattern" Gleicht Zeichenfolgenwerte mithilfe von Wildcardoperatoren ?und ab *. Wie-Operator
Between val1 And val2 Ermittelt, ob ein numerischer Wert oder Datumswert innerhalb eines Bereichs liegt. Zwischen...Und-Operator
In(string1,string2...) Ermittelt, ob ein Zeichenfolgenwert in einer Gruppe von Zeichenfolgenwerten enthalten ist. In-Operator

Konstanten

Eine Konstante ist ein bekannter Wert, der nicht geändert wird und den Sie in einem Ausdruck verwenden können. In Access gibt es vier allgemein verwendete Konstanten:

  • True gibt etwas an, das logisch wahr ist.
  • False gibt etwas an, das logisch false ist.
  • Null gibt das Fehlen eines bekannten Werts an.
  • "" (empty string) gibt einen Wert an, der als leer bekannt ist.

Konstanten können als Argumente für eine Funktion und in einem Ausdruck als Teil eines Kriteriums verwendet werden. Beispielsweise können Sie die leere Zeichenfolgenkonstante ("") als Teil eines Kriteriums für eine Spalte in einer Abfrage verwenden, um die Feldwerte für diese Spalte auszuwerten, indem Sie Folgendes als Kriterium eingeben: <>"". In diesem Beispiel <> ist ein Operator und "" eine Konstante. Zusammen verwendet, geben sie an, dass der Bezeichner, auf den sie angewendet werden, mit einer leeren Zeichenfolge verglichen werden soll. Der sich daraus ergebende Ausdruck ist wahr, wenn der Wert des Bezeichners etwas anderes als eine leere Zeichenfolge ist.

Seien Sie vorsichtig, wenn Sie die Null Konstante verwenden. In den meisten Fällen führt die Verwendung von Null in Verbindung mit einem Vergleichsoperator zu einem Fehler. Wenn Sie einen Wert Null mit in einem Ausdruck vergleichen möchten, verwenden Sie den Is Null -Operator oder den Is Not Null -Operator.

Werte

Sie können in den Ausdrücken Literalwerte verwenden, z. B. die Zahl 1.254 oder die Zeichenfolge "Geben Sie eine Zahl zwischen 1 und 10 ein". Sie können auch numerische Werte verwenden, die eine Ziffernfolge enthalten können, einschließlich Vorzeichen und Dezimalkomma (bei Bedarf). Wenn das Vorzeichen fehlt, geht Access von einem positiven Wert aus. Um einen Wert negativ zu machen, fügen Sie das Minuszeichen (-) ein. Es kann auch die wissenschaftliche Notation verwendet werden. Hierzu geben Sie "E" oder "e" und das Exponentenzeichen an (z. B. 1,0E-6).

Wenn Sie Textzeichenfolgen verwenden, schließen Sie sie in Anführungszeichen ein, um sicherzustellen, dass Access diese ordnungsgemäß interpretiert. Unter gewissen Umständen stellt Access die Anführungszeichen für Sie bereit. Wenn Sie z. B. in einem Ausdruck für eine Gültigkeitsregel oder für Abfragekriterien Text eingeben, schließt Access die Textzeichenfolgen automatisch in Anführungszeichen ein.

Wenn Sie beispielsweise den Text Pariseingeben, zeigt Access im Ausdruck "Paris" an. Wenn ein Ausdruck eine Zeichenfolge erzeugen soll, die tatsächlich in Anführungszeichen eingeschlossen ist, schließen Sie die geschachtelte Zeichenfolge entweder in einfache (') Anführungszeichen oder in drei Doppelte (") Anführungszeichen ein. Beispielsweise sind die folgenden Ausdrücke äquivalent:

Forms![Contacts]![City]. DefaultValue = ' "Paris" ' 
Forms![Contacts]![City].DefaultValue = " " "Paris" " " 

Um Datums-/Uhrzeitwerte zu verwenden, schließen Sie die Werte in Pfundzeichen (#) ein. Die Werte #3-7-17#, #7-Mär-17# und #Mär-7-2017# sind beispielsweise gültige Werte für Datum/Uhrzeit. Wenn Access einen gültigen, in #-Zeichen eingeschlossenen Wert für Datum/Uhrzeit findet, wird der Wert automatisch als Datum/Uhrzeit-Datentyp behandelt.

Seitenanfang

Die Beschränkung der Schachtelungsebenen für Ausdrücke in einer Webdatenbank beträgt 65 Ebenen

Ausdrücke, die mehr als 65 Ebenen tief geschachtelt sind, funktionieren im Browser nicht, daher sollten Sie solche Ausdrücke nicht in einer Access-Webdatenbank verwenden. Sie erhalten keine Fehlermeldungen – der Ausdruck funktioniert einfach nicht.

Die Verwendung der &Operatoren , ANDund OR kann zusätzliche Schachtelungsebenen auf dem Server erstellen, die im Access-Client nicht widerspiegelt werden. Der Ausdruck "a" & "b" & "c" ist beispielsweise nicht im Ausdrucks-Generator geschachtelt, in SharePoint wird er jedoch zu concatenate.Db("a", concatenate.Db("b", "c") ). Durch diese Umsetzung ergibt sich eine Schachtelungsebene. Die Verwendung vieler aufeinander folgender &Operatoren , ANDoder OR in einem einzelnen Ausdruck kann dazu führen, dass Sie den Schachtelungsgrenzwert des Servers von 65 überschreiten, sodass der Ausdruck im Browser nicht mehr funktioniert.

Seitenanfang

Verwenden des Ausdrucks-GeneratorsEinführung in AusdrückeErstellen eines AusdrucksBeispiele für Ausdrücke