Bei der Verwendung von Microsoft Access müssen Sie häufig mit Werten arbeiten, die nicht direkt in Ihren Daten vorhanden 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.
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. Der nachfolgende Boolesch Ausdruck besteht z. B. aus nur einem Operator und einer Konstante:
>0
Dieser Ausdruck gibt Folgendes zurück:
-
True beim Vergleich mit einer Zahl, die größer als 0 (Null) ist.
-
False beim Vergleich mit einer Zahl, die kleiner als 0 (Null) 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.
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 — typischerweise 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 die Form [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.
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:
|
3 Eine Eigenschaft 2 Ein Objekt 1 Eine Sammlung |
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:
-
Ausrufezeichenoperator (!)
-
Punktoperator (.)
-
EckigeKlammern-Operator ([ ])
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. So kann zum Beispiel ein Bezeichner für ein Feld namens "Nachname" in einer Tabelle namens "Mitarbeiter" 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 Vorgehensweise, dass Sie die Klammern selbst eingeben. Dies hilft Ihnen bei der Vermeidung von Fehlern und dient außerdem als visueller Hinweis, dass ein bestimmter Teil eines Ausdrucks ein Bezeichner ist.
Funktionen, Operatoren, Konstanten und Werte
Zum Erstellen eines Ausdrucks benötigen Sie mehr als Bezeichner – Sie müssen eine bestimmte 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.
In dem Beispiel am Anfang dieses Artikels verwendet die DatTeil-Funktion zwei Argumente: ein Argument "Intervall" mit einem Wert von "yyyy" und ein Argument "Datum" mit einem Wert von [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 Funktion DatTeil dient zum Ermitteln oder Extrahieren eines Datumsteils – in der Regel ein Datum, das aus einem Feldbezeichner abgerufen wird, doch manchmal ein Datumswert, der von einer anderen Funktion, z. B. Datum, zurückgegeben wird.
DatePart ( "yyyy", Date())
-
Die Funktion DatDiff dient zur Ermittlung der Differenz zwischen zwei Datumsangaben – in der Regel zwischen einem Datum, das aus einem Feldbezeichner abgerufen wird, und einem Datum, das mithilfe der Datum-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 Funktion Wenn dient zum Auswerten eines Ausdrucks als "wahr" oder "falsch" mit anschließender Rückgabe eines Werts, wenn der Ausdruck als "wahr" ausgewertet wird, und eines anderen Werts, wenn der Ausdruck als "falsch" ausgewertet wird.
=IIf([CountryRegion]="Italy", "Italian", "Some other language")
-
Die Funktion InStr dient zum Suchen nach der Position eines Zeichens oder einer Zeichenfolge innerhalb einer anderen Zeichenfolge. 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:
-
Arithmetische Operatoren, z. B. das Pluszeichen (+)
-
Vergleichsoperatoren, z. B. das Gleichheitszeichen (=)
-
Logische Operatoren, z. B. Not
-
Verkettungsoperatoren, z. B. &
-
Spezielle Operatoren, 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 Operationen
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 |
Vergleichsoperatoren
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. |
In allen Fällen gilt: Wenn der erste oder der zweite Wert Null ist, ist auch das Ergebnis Null. Da Null einen unbekannten Wert darstellt, ist auch das Ergebnis eines Vergleichs mit Null unbekannt.
Logische Operatoren
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" |
Vergleicht Zeichenfolgenwerte mithilfe der Platzhalteroperatoren ? und *. |
|
Between val1 And val2 |
Ermittelt, ob ein numerischer Wert oder Datumswert innerhalb eines Bereichs liegt. |
|
In(string1,string2...) |
Ermittelt, ob ein Zeichenfolgenwert in einer Gruppe von Zeichenfolgenwerten enthalten ist. |
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 an, dass etwas logisch wahr ist.
-
False Gibt an, dass etwas logisch falsch ist.
-
Null Gibt an, dass ein bekannter Wert fehlt.
-
"" (empty string) Gibt einen Wert an, der bekanntermaßen leer ist.
Konstanten können als Argumente für eine Funktion und in einem Ausdruck als Teil eines Kriteriums verwendet werden. Sie können zum Beispiel die Leerstring-Konstante ( "") 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 "" ist 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 bei Verwendung der Konstante Null. In den meisten Fällen führt die Verwendung von Null in Verbindung mit einem Vergleichsoperator zu einem Fehler. Wenn Sie einen Wert in einem Ausdruck mit Null vergleichen möchten, verwenden Sie den Operator Is Null oder Is Not Null.
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. Ein negativer Wert wird mit dem Minuszeichen (-) angegeben. 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 als Text beispielsweise Paris eingeben, wird von Access "Paris" im Ausdruck angezeigt. Wenn Sie in einem Ausdruck eine Zeichenfolge tatsächlich in Anführungszeichen angeben möchten, können Sie die eingebettete Zeichenfolge entweder in einfache (') Anführungszeichen oder in drei doppelte (") Anführungszeichen einschließen. Beispielsweise sind die folgenden Ausdrücke äquivalent:
Forms![Contacts]![City]. DefaultValue = ' "Paris" '
Forms![Contacts]![City].DefaultValue = " " "Paris" " "
Wenn Sie Werte für Datum/Uhrzeit verwenden möchten, schließen Sie die Werte in Nummernzeichen (#) 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.
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 App-Webdatenbank verwenden. Es wird keine Fehlermeldung ausgegeben – der Ausdruck funktioniert einfach nicht.
Mit den Operatoren &, AND und OR können auf dem Server zusätzliche Schachtelungsebenen erstellt werden, die im Access-Client nicht wiedergegeben werden. So ist der Ausdruck "a" & "b" & "c" im Ausdrucks-Generator nicht verschachtelt, wird in SharePoint jedoch zu concatenate.Db("a", concatenate.Db("b", "c") ). Durch diese Umsetzung ergibt sich eine Schachtelungsebene. Die Verwendung vieler aufeinander folgender &-, AND- oder OR-Operatoren in einem einzelnen Ausdruck kann dazu führen, dass die Beschränkung der Schachtelungsebenen von 65 auf dem Server überschritten wird, sodass der Ausdruck im Browser nicht mehr funktioniert.