Parameterabfragen mit Access

Autor: André Minhorst, Duisburg

Es gibt die unterschiedlichsten Möglichkeiten zur Durchführung von Abfragen. Sie reichen von der einfachen Auswahlabfrage, die Sie mit dem Abfragedesigner erstellen, über die parameterisierte Abfrage als Datenherkunft eines Formulars bis hin zu Aktionsabfragen zum Hinzufügen, Löschen und ändern von Daten, die zur Laufzeit per VBA zusammengesetzt werden. Dabei behandelt man die Parameterabfragen oft ein wenig stiefmütterlich, da andere Methoden auf den ersten Blick bequemer erscheinen. Der vorliegende Beitrag beschreibt die Anwendungsmöglichkeiten von Parameterabfragen unterschiedlichster Art.

Die Verwendung von Parametern dient vor allem der Erhöhung der Flexibilität von Abfragen. Während einfache gespeicherte Abfragen ohne Parameter immer das gleiche Ergebnis liefern (es sei denn, die zugrunde liegenden Daten würden geändert), können Sie mit zur Laufzeit dynamisch erstellten Abfragen oder mit Parameterabfragen Ergebnismengen darstellen, die von den jeweiligen Parametern abhängen.

Ein weiterer Vorteil gespeicherter Abfragen ist ein eventueller Performance-Gewinn.

Hinweis

Wenn Sie die Beispieldaten nicht von Hand eingeben möchten, können Sie auch die Beispieldatenbanken Parameterabfragen97.mdb bzw. Parameterabfragen2000.mdb verwenden.

Für die nachfolgenden Beispiele benötigen Sie wie immer einige Beispieldaten. Legen Sie einfach eine Tabelle namens tblKontakte an und fügen Sie ihr die Felder KontaktID, Vorname, Nachname, Geburtsdatum und AnredeID hinzu. Außerdem sollten Sie zwei bis drei Testdatensätze anlegen.

Die zweite Tabelle der Beispieldatenbank heißt tblAnreden und enthält unterschiedliche Anreden wie Herr, Frau usw. Dazu verwendet sie die beiden Felder AnredeID und Anrede.

Die beiden Tabellen sind über das Feld AnredeID der Tabelle tblKontakte miteinander verknüpft.

Die einfachste Möglichkeit zur Erstellung einer Parameterabfrage bietet die Abfrage-Entwurfsansicht von Access. Von dort aus können Sie die erstellten Abfragen auch direkt ausführen und deren Ergebnisse anzeigen lassen.

Erstellung einer Abfrage

Sie öffnen die Abfrage-Entwurfsansicht, indem Sie im Register Abfragen des Datenbankfensters auf die Schaltfläche Neu klicken und anschließend den Eintrag Entwurfsansicht auswählen.

Wählen Sie hier aus der Liste der verfügbaren Tabellen die Tabelle tblKontakte aus und klicken Sie auf die Schaltfläche Hinzufügen (s. Abb. 1).

Abb. 1: Hinzufügen einer Tabelle zum Abfrageentwurf

Nachdem Sie die Tabelle tblKontakte hinzugefügt haben, können Sie alle vier Felder KontaktID, Vorname, Nachname und Geburtstag aus der Feldliste in das Entwurfsraster der Abfrage ziehen.

Klicken Sie mit der rechten Maustaste in den oberen Bereich des Abfrageentwurfs und wählen Sie den Eintrag Datenblattansicht aus dem nun erscheinenden Kontextmenü aus, um das Abfrageergebnis anzuzeigen (s. Abb. 2).

Abb. 2: Ergebnis der Abfrage

Hinzufügen eines Parameters

Fügen Sie der Abfrage nun einen Parameter hinzu, indem Sie in der Zeile Kriterien im Abfrageentwurf für das Feld Vorname den folgenden Ausdruck eingeben (s. Abb. 3):

=[Geben Sie einen Vornamen ein:]

Abb. 3: Abfrage mit Parameter

Beachten Sie, dass dieses Kriterium nur solche Ergebnisse anzeigt, die genau mit dem Kriterium übereinstimmen. Die Verwendung von Platzhaltern, wie dem Sternchen (*) als Platzhalter für eine unbestimmte Anzahl von Zeichen oder dem Fragezeichen () stellvertretend für ein Zeichen, hat hier keine Wirkung.

Verwendung von Platzhaltern

Wenn Sie Platzhalter verwenden möchten, verwenden Sie statt des Gleichheitszeichens den Vergleichsoperator Like. Sie können auch direkt das deutsche Pendant Wie in den Abfrageentwurf eintragen. Access nimmt automatisch die übersetzung ins Deutsche vor:

Wie [Geben Sie einen Vornamen ein:]

Wenn Sie nun die Abfrage ausführen lassen möchten, erscheint ein Dialogfenster mit der angegebenen Aufforderung (s. Abb. 4).

Abb. 4: Abfrage eines Parameters per Dialogfenster

Abb. 5: Parameterabfrage per Inputbox

Nachdem Sie den gewünschten Wert eingegeben haben, zeigt die Abfrage die gefundenen Datensätze an.

Aussehen der SQL-Anweisung

Wenn Sie im Kontextmenü des Abfragefensters den Eintrag SQL auswählen, erscheint die zugrunde liegende SQL-Anweisung. Sie lautet in diesem Fall:

SELECT tblKontakte.KontaktID, tblKontakte.Vorname,  tblKontakte.Nachname,  tblKontakte.Geburtstag
FROM tblKontakte
WHERE (((tblKontakte.Vorname) Like [Geben Sie einen Vornamen ein:])  AND ((tblKontakte.Geburtstag)  Between [Startdatum] And [Enddatum]));

Hinweis

Die Entwurfsansicht von Abfragen ist schlicht und einfach ein Werkzeug zur komfortablen Erstellung von SQL-Ausdrücken. Diese werden nach der Erstellung auch gespeichert.

Access ist hier etwas übervorsichtig: Wenn eine Abfrage mehrere Tabellen mit gleichnamigen Feldern enthält, dann ist es nicht nur übersichtlicher, sondern auch unbedingt notwendig, dem Feldnamen den Tabellennamen voranzustellen.

Im vorliegenden Fall könnten Sie die Anweisung allerdings erheblich kürzen und erhalten eher eine übersichtlichere Ansicht:

SELECT KontaktID, Vorname, Nachname,  Geburtstag
FROM tblKontakte
WHERE Vorname Like [Geben Sie einen Vornamen ein:]  AND Geburtstag Between [Startdatum]  And [Enddatum];

Vorgabe von Standardwerten

Oftmals erfordert die Eingabe nur Standardwerte. Zur Vereinfachung der Eingabe wäre es hier sinnvoll, einen Standardwert vorzugeben. Dies ist aber mit der beschriebenen Eingabemaske nicht möglich.

Access bietet allerdings einen weiteren, einfachen Dialog, der ein wenig komfortabler ist und für rudimentäre Anwendungen ausreichen kann. Der Dialog bietet eine Reihe von Parametern, von denen hier nur die ersten drei interessant sind: der Fragetext, die überschrift sowie der Standardwert.

Leider kann dieser Dialog nicht direkt aus einer Abfrage heraus aufgerufen werden, Sie müssen sich mit einer kleinen VBA-Funktion helfen.

Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access im Unternehmen:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 1.000 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar