Unsere Webseiten benötigen JavaScript. Dies scheint in Ihrem Browser jedoch deaktiviert zu sein.

News & Tipps zu Microsoft Access

Lesen Sie hier einige der besten Beiträge aus SmartTools Access Weekly sowie ausgewählte Inhalte anderer E-Mail-Newsletter von SmartTools Publishing rund um Microsoft Access.

Beitrag aus SmartTools Access Weekly

SQL-Abfragen mit Parametern ausführen

Access 365 2024 2021 2019 2016 2013 2010

Um mit einer SQL-Abfrage direkt "Top Ten"-Werte aus einer Tabelle zu selektieren und dabei eine Anforderung wie zum Beispiel "Zeige die 10 teuersten Artikel, die mehr als "X" Euro kosten" zu berücksichtigen oder um Artikel in einem bestimmten "Von/Bis"-Preissegment zu selektieren, muss mindestens ein Parameter "X" definiert und abgefragt werden. Während Sie im normalen Abfrageentwurf einfach die Funktion Parameter nutzen und die gewünschten Parameter in einem Dialog definieren, sind in einer SQL-Abfrage entsprechende Statements aufzunehmen. Details dazu erläutert dieser Tipp der Woche.

Mit Parametern in SQL-Abfragen machen Sie sich am besten über eine Beispielabfrage in der Nordwind-Beispieldatenbank vertraut, die Sie Schritt für Schritt folgendermaßen einrichten:

  1. Wechseln Sie auf das Register "Erstellen" und klicken in der Gruppe "Andere" auf Abfrageentwurf.
  2. Wählen Sie im nachfolgenden Dialog die betreffende Tabelle, für unser Beispiel "Artikel", per Doppelklick aus und klicken Sie auf Schließen.
  3. Schalten Sie die Abfrage auf "SQL" um, indem Sie in der Gruppe "Ergebnisse" auf das Symbol Ansicht klicken und SQL-Ansicht auswählen.
  4. Geben Sie nun die folgenden Anweisungen im SQL-Editor ein:
PARAMETERS MinPreis Single;
SELECT TOP 10 Artikel.Artikelname, Artikel.Listenpreis
FROM Artikel WHERE Listenpreis >= MinPreis
GROUP BY Artikel.Artikelname, Artikel.Listenpreis
ORDER BY Artikel.Listenpreis DESC;

Die Definition von Parametern erfolgt über das Schlüsselwort "PARAMETERS" gefolgt vom Parameternamen und dem Datentyp des Parameters. Wenn der Parametername Sonder- oder Leerzeichen enthält, schließen Sie ihn in eckige Klammern ein. Mögliche Datentypen sind "Byte", "Currency" (Währung), "DateTime" (Datum/Zeit), "Double", "Short" (Integer), "Long" oder "Text".

Wenn Sie diese Abfrage ausführen, wird zunächst der bekannte Dialog "Parameterwerte" für die Eingabe des Wertes zum Parameter "MinPreis" angezeigt. Geben Sie hier beispielsweise "20" ein, werden anschließend die 10 teuersten Artikel, die mindestens 20 Euro kosten, angezeigt. Um die Anzahl der zu selektierenden Datensätze auf einen anderen Wert als "10" festzulegen, ändern Sie die Anweisung "SELECT TOP 10" beispielsweise in "SELECT TOP 5" oder "SELECT TOP 20". Bitte beachten Sie, dass zum Beispiel eine TOP 10-Abfrage auch 11, 12 oder mehr Datensätze liefern kann, wenn es mehrere Datensätze gibt, die den gleichen Preis unterhalb des festgelegten Minimums haben.

Ist es notwendig, mehr als einen Parameter zu definieren bzw. abzufragen, so geben Sie die Parameter wie oben gezeigt durch Komma getrennt beim PARAMETERS-Schlüsselwort an:

PARAMETERS [Untere Preisgrenze] Single,
           [Obere Preisgrenze] Single;
SELECT TOP 20 Artikel.Artikelname, Artikel.Listenpreis
FROM Artikel
WHERE Listenpreis > [Untere Preisgrenze] AND
      Listenpreis < [Obere Preisgrenze]
GROUP BY Artikel.Artikelname, Artikel.Listenpreis
ORDER BY Artikel.Listenpreis ASC;

Diese Abfrage würde zum Beispiel einen Mindest- und einen Maximal-Preis erfragen und dann die passenden 20 Artikel anzeigen, die in diesem Preisbereich liegen.