Access 2010: Operatoren, Platzhalter und Bedingungsausdrücke

Aus Augenbit

Operatoren, Platzhalter und Bedingungsausdrücke

Ein Operator ist Symbol oder ein Wort, mit dem man Access mitteilt, was ein Filter oder eine Abfrage genau tun soll. Er vergleicht unterschiedliche Werte und trifft anhand dieses Vergleiches die Entscheidung, ob ein Datensatz im Ergebnis erscheint oder nicht. Platzhalter ermöglichen es, Vergleiche auch mit Werten vorzunehmen, von denen Teile unbekannt oder für die Abfrage bzw. den Filter nicht relevant sind. Aus Operatoren und Platzhaltern werden sogenannte Bedingungsausdrücke aufgebaut, die es erlauben, spezielle Ansichten der in der Datenbank gespeicherten Daten zu erstellen.

Operatoren

Der geläufigste Operator ist der Operator GLEICH, mathematisch "=". Er vergleicht zwei Werte miteinander und stellt fest, ob diese identisch oder unterschiedlich sind. Kombiniert man den GLEICH-Operator mit einem bestimmten Wert, so entsteht ein Bedingungsausdruck, wie zum Beispiel Haarfarbe = blond. In einer Tabelle, in der Personen und ihre Haarfarbe gespeichert sind, würde dieser Bedingungsausdruck als Filter angewendet alle brünetten, rothaarigen und andersfarbigen aussortieren und nur blonde Personen übriglassen. Der auswahlbasierten Filter nutzt ausschließlich den GLEICH-Operator.

Das Gegenstück zum GLEICH-Operator ist der UNGLEICH-Operator, mathematisch " <> ". Ein mit ihm formulierter Bedingungsausdruck findet alle Werte, die nicht dem Vergleichswert entsprechen. Im oben genannten Beispiel würde Haarfarbe <> blond alle blonden Personen aussortieren, alle anderen Personen aber in der Tabelle belassen. Der auswahlausschließende Filter nutzt ausschließlich den UNGLEICH-Operator.

Access setzt für den GLEICH- und den UNGLEICH-Operator eigene Begriffe ein.

  • Ein Bedingungsausdruck mit dem GLEICH-Operator wird in Access mit dem Wort WIE eingeleitet. Innerhalb des Filter-Fensters in der Zeile Kriterium könnte beispielsweise ' Wie "Mannheim" ' stehen. Access prüft in diesem Fall zunächst in der ersten Zeile, auf welche Spalte sich die Bedingung bezieht und führt dann den Vergleich durch.
  • Der UNGLEICH-Operator wird mit dem Wort NICHT eingeleitet. Um alle Mannheimer aus einer Tabelle herauszufiltern, würde als Bedingungsausdruck in der passenden Spalte ' Nicht "Mannheim" ' stehen.

Sowohl der GLEICH- als auch der UNGLEICH-Operator lassen sich auf Text und auf Zahlen anwenden. Andere Operatoren können hingegen nur auf Zahlen angewendet werden. Zu diesen Oparatoren gehören:

  • < Kleiner als - Beispiel: Finde alle Personen, die kleiner als 180 cm sind: Spalte Körpergröße: < 180
  • > Größer als - Beispiel: Finde alle Einkommen, die größer als 60000€ sind: Spalte Einkommen: > 60000
  • <= Kleiner gleich - Beispiel: Finde alle Personen, die 80 Jahre oder jünger sind: Spalte Lebensalter: <= 80
  • >= Größer gleich - Beispiel: Finde alle Postleitzahlen, die größer als 30000 sind: Spalte Postleitzahl: >= 30000

Aus Operatoren aufgebaute Bedingungsausdrücke lassen sich durch UND- und ODER-Anweisungen auch miteinander kombinieren.

Beispiele:

  • UND - Finde alle Personen im Postleitzahlenbereich 3 (von 30000-39999): Spalte Postleitzahl: >=30000 UND <40000
  • ODER - Finde alle Personen, die in Ilvesheim oder in Marburg wohnen: Spalte Wohnort: Wie "Ilvesheim" ODER Wie "Marburg"

Platzhalter

Um in einem Bedingungsausdruck mit einem ungenauen Suchwert arbeiten zu können, benötigt man Platzhalter. Mit diesen kann nach Werten gesucht werden, die einem Suchwert nur ähnlich sind, ihm aber nicht exakt entsprechen müssen. Vor allem bei der Arbeit mit Texten kommt Platzhaltern eine große Bedeutung zu, wie das folgende Beispiel zeigt: Nehmen Sie an, Sie suchen in Ihrer Kundendatenbank einen Herrn Meier, oder war es Meyer, oder Maier oder vielleicht sogar Mayer? Sie wissen es nicht genau. Sie könnten nun einen Filter für Ihre Datenbankabfrage definieren, der mit der ODER Verknüpfung nach jeder Schreibweise des Namens sucht. Wie "Meier" ODER Wie "Meyer" ODER Wie "Maier" ODER Wie "Mayer". Leichter ist es aber für die strittigen Buchstaben Platzhalter zu verwenden. Eine entsprechende Anfrage sähe dann so aus: Wie "M[ae][iy]er". Die eckigen Klammern sind Platzhalter. Die in Ihnen enthaltenen Buchstaben teilen Access mit, welche Zeichen an dieser Position stehen dürfen um die Bedingung des Bedingungsausdruckes noch zu erfüllen.

Neben den Klammern gibt es noch weitere Platzhalter, die in der folgenden Tabelle aufgelistet sind:

  • * - ersetzt beliebig viele Zeichen - Feld Name: M* - findet alle Namen die mit "M" beginnen: Müller, Meier, Menuras
  • ? - ersetzt ein beliebiges alphabetisches Zeichen - Feld Name: Me?er - findet Namen wie Meier, Meyer, Meler, Mener ...
  • # - ersetzt ein beliebiges numerisches Zeichen - Feld Postleitzahl: 682## - findet die Postleitzahlen von 68200 bis 68299
  • [] - ersetzt das Zeichen, das in Klammern steht - Feld Name: Ma[iy]er - findet die Namen Maier und Mayer, nicht aber die Namen Maler oder Maser
  • [!] - ersetzt ein Zeichen, das in den Klammern nicht enthalten ist - Feld Name: Ma[!iy]er - findet Namen wie Maler und Maser, nicht aber Mayer und Maier
  • [-] - ersetzt ein Zeichen innerhalb eines Bereiches - Feld Name: Ma[a-l]er - findet Namen wie Mager, Maier, Maler, nicht aber Mayer

Regeln zur Eingabe von Bedingungsausdrücken

Damit Access Werte dem richtigen Typ zuordnen kann, müssen bei den Bedingungsausdrücken einige Regeln beachtet werden. Access kann beispielsweise den Wert 68549 als Zahl oder als Text interpretieren. Je nach dem, wie dieser Wert interpretiert wird, stehen unterschiedliche Operatoren zur Verfügung oder müssen unterschiedliche Platzhalter verwendet werden. Die Operatoren <, >, <=, >= lassen sich beispielsweise nur auf Zahlen anwenden. Soll ein Platzhalter für ein einzelnes Zeichen verwendet werden, so muss bei einer Zahl ein # und bei einem Buchstaben ein ? eingegeben werden. Der Wert 28.02.80 kann als Zahl oder als Datum interpretiert werden.

Folgende Regeln ermöglichen die Eingabe eindeutiger Werte:

  • Zahlen: Wird eine Zahl eingegeben, so wird sie als Zahl interpretiert. Beispiel: 68549
  • Texte: Texte müssen von Anführungszeichen "umgeben" sein. Eine Zahl in Anführungszeichen wird als Text, größer oder kleiner Vergleiche sind nicht möglich: Beispiel: "68549"
  • Datums und Uhrzeitangaben: Um ein Datum oder eine Uhrzeit einzugeben muss der Wert von Zahlzeichen # umgeben werden. Beispiel: #28.02.80#

Access: Übung mit Operatoren und Platzhaltern