Wenn bei einer Abfrage in Access bei jedem Ausführen eine Eingabeaufforderung erfolgen soll, können Sie eine Parameterabfrage erstellen.
Sie können auch ein Formular zum Sammeln von Parameterwerten erstellen, die zum Einschränken der für Abfragen, Formulare oder Berichte zurückgegebenen Datensätze verwendet werden. In diesem Artikel wird die Verwendung von Formularen in Access erläutert, um die Nutzung von Parametern in Abfragen, Formularen und Berichten zu verbessern.
Inhalt dieses Artikels
Übersicht
Sie können Kriterien in einer Parameterabfrage in Access verwenden, um die Anzahl von Datensätzen einzuschränken, die von der Abfrage zurückgegeben werden. Möglicherweise stellen Sie fest, dass die von einer Parameterabfrage bereitgestellten Dialogfelder für Ihre Zwecke nicht ausreichen. In solchen Fällen können Sie ein Formular erstellen, das Ihren Anforderungen an eine Parametersammlung besser entspricht. In diesem Artikel wird erläutert, wie Sie ein Formular erstellen, in dem Abfrage- und Berichtsparameter gesammelt werden. In diesem Artikel wird davon ausgegangen, dass Sie mit dem Erstellen von Abfragen und dem Definieren von Parametern in Abfragen vertraut sind. Zumindest sollten Sie mit dem Erstellen einer Auswahlabfrage vertraut sein, bevor Sie fortfahren.
Dieser Artikel enthält Beispiele für die Verwendung von Parametern in Abfragen. Er stellt keine umfassende Referenz zur Angabe von Kriterien dar.
-
Weitere Informationen zum Erstellen einer Auswahlabfrage finden Sie im Artikel Erstellen einer einfachen Auswahlabfrage.
-
Weitere Informationen zu Abfragen im Allgemeinen finden Sie im Artikel Einführung in Abfragen.
-
Weitere Informationen zum Definieren von Parametern in Abfragen finden Sie im Artikel Verwenden von Parametern zur Eingabeaufforderung beim Ausführen einer Abfrage.
-
Weitere Informationen zum Angeben von Kriterien finden Sie im Artikel Beispiele für Abfragekriterien.
Verwenden von Parametern in Abfragen
Das Verwenden eines Parameters in einer Abfrage ist so einfach wie das Erstellen einer Abfrage, für die Kriterien verwendet werden. Sie können eine Abfrage so konzipieren, dass Sie zur Eingabe einer Information (z. B. eine Artikelnummer) oder mehrerer Informationen (z. B. zwei Datumsangaben) aufgefordert werden. Eine Parameterabfrage zeigt für jeden Parameter ein separates Dialogfeld an, in dem Sie zur Eingabe eines Werts für diesen Parameter aufgefordert werden.
Hinzufügen eines Parameters zu einer Abfrage
-
Erstellen Sie eine Auswahlabfrage, und öffnen Sie die Abfrage dann in der Entwurfsansicht.
-
Geben Sie in der Zeile Kriterien des Felds, auf das ein Parameter angewendet werden soll, den Text in eckigen Klammern ein, der im Parameterdialogfeld angezeigt werden soll, beispielsweise
[Startdatum]
Wenn Sie die Parameterabfrage ausführen, wird die Eingabeaufforderung in einem Dialogfeld ohne die eckigen Klammern angezeigt.
Sie können auch einen Ausdruck mit Parameterabfragen verwenden, beispielsweise
Zwischen [Startdatum] Und [Enddatum]
Hinweis: Für jede Parametereingabeaufforderung wird ein separates Dialogfeld angezeigt. Im zweiten Beispiel werden zwei Dialogfelder angezeigt: eins für "Startdatum" und eins für "Enddatum".
-
Wiederholen Sie Schritt 2 für jedes Feld, dem Parameter hinzugefügt werden sollen.
Mit den vorgenannten Schritten können Sie einen Parameter zu jedem der folgenden Abfragetypen hinzufügen: Auswahlabfrage, Kreuztabellenabfrage, Anfügeabfrage, Tabellenerstellungsabfrage oder Aktualisierungsabfrage.
Mit den folgenden Schritten können Sie auch einen Parameter zu einer Union-Abfrage hinzufügen:
-
Öffnen Sie die Union-Abfrage in der SQL-Ansicht.
-
Fügen Sie eine WHERE-Klausel hinzu, die jedes Feld enthält, in dem ein Parameter eingegeben werden soll.
Wenn bereits eine WHERE-Klausel vorhanden ist, überprüfen Sie, ob die Felder, für die Sie eine Parametereingabeaufforderung verwenden möchten, bereits in der Klausel enthalten sind. Wenn dies nicht der Fall ist, fügen Sie sie hinzu.
-
Anstelle eines Kriteriums in der WHERE-Klausel können Sie eine Parametereingabeaufforderung verwenden.
Angeben von Parameterdatentypen
Sie können auch angeben, welche Art von Daten ein Parameter akzeptieren soll. Sie können den Datentyp für jeden Parameter festlegen, besonders wichtig ist es jedoch, den Datentyp für numerische Daten, Währungsdaten oder Datums-/Uhrzeitdaten anzugeben. Wenn Sie den Datentyp angeben, den ein Parameter akzeptieren soll, wird den Benutzern eine hilfreiche Fehlermeldung angezeigt, falls sie einen falschen Datentyp eingeben (beispielsweise Eingabe von Text an einer Stelle, an der eine Währung erwartet wird).
Hinweis: Wenn der Parameter so konfiguriert ist, dass er Textdaten akzeptiert, wird jede Eingabe als Text interpretiert, und es wird keine Fehlermeldung angezeigt.
Führen Sie die folgenden Schritte aus, um den Datentyp für Parameter in einer Abfrage anzugeben:
-
Klicken Sie bei geöffneter Abfrage in der Entwurfsansicht auf der Registerkarte Entwurf in der Gruppe Einblenden/Ausblenden auf Parameter.
-
Geben Sie im Dialogfeld Abfrageparameter in der Spalte Parameter die Eingabeaufforderung für die einzelnen Parameter ein, für die der Datentyp angegeben werden soll. Achten Sie darauf, dass jeder Parameter der in der Zeile Kriterien des Abfrageentwurfsbereichs verwendeten Eingabeaufforderung entspricht.
-
Wählen Sie in der Spalte Datentyp den Datentyp für jeden Parameter aus.
Erstellen eines Formulars zum Sammeln von Parametern
Obwohl Parameterabfragen mit einem integrierten Dialogfeld versehen sind, in dem Parameter gesammelt werden, stellen sie nur Grundfunktionen bereit. Bei Verwendung eines Formulars zum Sammeln von Parametern profitieren Sie von folgenden Funktionen:
-
Die Möglichkeit, datentypspezifische Steuerelemente (z. B. Kalendersteuerelemente für Datumsangaben) zu verwenden.
-
Persistenz der gesammelten Parameter, sodass Sie diese für mehr als eine Abfrage verwenden können.
-
Die Möglichkeit, ein Listen- oder Kombinationsfeld für die Parametersammlung bereitzustellen, in dem eine Liste verfügbarer Datenwerte zur Auswahl steht.
-
Die Möglichkeit, Steuerelemente für andere Funktionen (z. B. Öffnen oder Aktualisieren einer Abfrage) bereitzustellen.
Im folgenden Video wird gezeigt, wie Sie anstelle der Dialogfelder, die normalerweise mit Parameterabfragen verbunden sind, ein einfaches Formular zum Sammeln von Parametern für eine Abfrage erstellen können.
Erstellen eines Formulars zum Sammeln von Parametern für einen Bericht
Es gibt mehrere Möglichkeiten, wie Sie dieses Szenario angehen können, aber wir zeigen nur eine Technik, die hauptsächlich Makros verwendet. Führen Sie die folgenden Schritte aus, um ein Formular zu erstellen, das Parameter für einen Bericht sammelt.
-
Schritt 1: Erstellen eines Formulars, das Eingaben akzeptiert
-
Schritt 2: Erstellen eines Codemoduls zum Überprüfen, ob das Parameterformular bereits geladen ist
-
Schritt 3: Erstellen eines Makros, das Formular und Bericht steuert
-
Schritt 4: Hinzufügen der Befehlsschaltflächen "OK" und "Abbrechen" zum Formular
-
Schritt 6: Hinzufügen der Makroaktionen zu den Berichtsereignissen
Schritt 1: Erstellen eines Formulars, das Eingaben akzeptiert
-
Klicken Sie auf der Registerkarte Erstellen in der Gruppe Formulare auf Formularentwurf.
-
Drücken Sie in der Entwurfsansicht F4, um das Eigenschaftsblatt anzuzeigen, und geben Sie dann die Formulareigenschaften an, wie in der folgenden Tabelle dargestellt.
Eigenschaft
Einstellung
Beschriftung
Geben Sie den Namen ein, der in der Titelleiste des Formulars angezeigt werden soll.
Standardansicht
Einzelnes Formular
Formularansicht zulassen
Ja
Datenblattansicht zulassen
Nein
PivotTable-Ansicht zulassen
Nein
PivotChart-Ansicht zulassen
Nein
Bildlaufleisten
Weder noch
Datensatzmarkierer
Nein
Navigationsschaltflächen
Nein
Rahmenart
Dialogfeld
-
Für jeden Parameter, den das Formular sammeln soll, klicken Sie auf der Registerkarte Entwurf in der Gruppe Steuerelemente auf Textfeld.
-
Legen Sie die Eigenschaften für die Textfelder fest, wie in der folgenden Tabelle dargestellt.
Eigenschaft
Einstellung
Name
Geben Sie einen aussagekräftigen Namen für den Parameter ein, z. B. Startdatum.
Format
Wählen Sie ein Format aus, das den Datentyp des Parameterfelds wiedergibt. Wählen Sie z. B. Standarddatum für ein Datumsfeld aus.
-
Speichern Sie das Formular, und geben sie einen Namen ein, z. B. FrmCriteria.
Schritt 2: Erstellen eines Codemoduls zum Überprüfen, ob das Parameterformular bereits geladen ist
-
Klicken Sie auf der Registerkarte Erstellen in der Gruppe Makros und Code auf Modul.
Ein neues Modul wird im Visual Basic-Editor geöffnet.
-
Geben Sie den folgenden Code in den Visual Basic-Editor ein, oder kopieren Sie ihn und fügen ihn ein:
Function IsLoaded(ByVal strFormName As String) As Boolean Dim oAccessObject As AccessObject Set oAccessObject = CurrentProject.AllForms(strFormName) If oAccessObject.IsLoaded Then If oAccessObject.CurrentView <> acCurViewDesign Then IsLoaded = True End If End If End Function
-
Speichern Sie das Modul unter einem eindeutigen Namen, und schließen Sie dann den Visual Basic-Editor.
Schritt 3: Erstellen eines Makros, das Formular und Bericht steuert
Mit den Untermakro-Features von Access-Makros können Sie alle erforderlichen Schritte definieren, die in einem einzelnen Makro ausgeführt werden müssen. Zum Steuern der verschiedenen Aufgaben, die für diesen Vorgang erforderlich sind, erstellen Sie vier Untermakros ("Dialogfeld öffnen", "Dialogfeld schließen", "OK" und "Abbrechen"). Verwenden Sie den folgenden Screenshot als Leitfaden, und erstellen Sie ein neues Makro mit den folgenden Untermakros und Aktionen. Beachten Sie, dass das Parameterformular in diesem Beispiel den Namen "FrmCriteria" hat. Passen Sie das Makro so an, dass es dem Namen des Formulars entspricht, das Sie zuvor erstellt haben. Um sicher sein zu können, klicken Sie auf der Registerkarte Entwurf auf Alle Aktionen anzeigen, um alle Makroaktionen anzuzeigen.
Speichern und schließen Sie das Makro. Benennen Sie das Makro, z. B. Makro Datumsbereich.
Schritt 4: Hinzufügen der Befehlsschaltflächen "OK" und "Abbrechen" zum Formular
-
Öffnen Sie erneut das Parameterformular, das Sie zuvor in der Entwurfsansicht erstellt haben.
-
Vergewissern Sie sich, dass auf der Registerkarte Entwurf in der Gruppe Steuerelemente der Eintrag Steuerelement-Assistenten verwenden deaktiviert ist.
-
Klicken Sie auf der Registerkarte Entwurf in der Gruppe Steuerelemente auf Schaltfläche.
-
Positionieren Sie den Mauszeiger unter den Textfeldern auf dem Formular, und ziehen Sie dann die Maus, um die Befehlschaltfläche OK zu erstellen.
-
Wenn das Eigenschaftsblatt nicht sichtbar ist, drücken Sie F4, um es anzuzeigen.
-
Legen Sie die Eigenschaften der Schaltfläche OK fest, wie in der folgenden Tabelle dargestellt.
Eigenschaft
Einstellung
Name
OK
Untertitel
OK
Standard
Ja
OnClick
Geben Sie den Namen des Makros ein, z. B. Makro Datumsbereich.OK.
-
Erstellen Sie eine Befehlsschaltfläche Abbrechen, und legen Sie die entsprechenden Eigenschaften fest, wie in der folgenden Tabelle dargestellt.
Eigenschaft
Einstellung
Name
Abbrechen
Untertitel
Abbrechen
OnClick
Geben Sie den Namen des Makros ein, z. B. Makro Datumsbereich.Abbrechen.
-
Speichern und schließen Sie das Formular.
Schritt 5: Verwenden der Formulardaten als Abfragekriterien
-
Öffnen Sie die Abfrage, die Sie zuvor in der Entwurfsansicht erstellt haben.
-
Geben Sie die Kriterien für die Daten ein. Verwenden Sie das Objekt Formulare, den Namen des Formulars und den Namen des Steuerelements:
-
Verwenden Sie z. B. in einer Access-Datenbank (ACCDB oder MDB) für ein Formular mit dem Namen "FrmCriteria" den folgenden Ausdruck, um auf Steuerelemente mit dem Namen "Startdatum" und "Enddatum" in der Abfrage zu verweisen:
Zwischen [Formulare]![FrmCriteria]![Startdatum] Und [Formulare]![FrmCriteria]![Enddatum]
-
Schritt 6: Hinzufügen der Makroaktionen zu den Berichtsereignissen
-
Öffnen Sie den Bericht, den Sie in der Entwurfsansicht verwenden möchten.
-
Wenn das Eigenschaftsblatt nicht sichtbar ist, drücken Sie F4, um es anzuzeigen.
-
Stellen Sie sicher, dass für die Eigenschaft Datensatzquelle des Berichts die zuvor definierte Parameterabfrage verwendet wird.
-
Legen Sie diese beiden zusätzlichen Berichtseigenschaften fest, wie in der folgenden Tabelle dargestellt.
Eigenschaft
Einstellung
OnOpen
Geben Sie den Namen des Makros ein, z. B. Makro Datumsbereich.Dialogfeld öffnen.
OnClose
Geben Sie den Namen des Makros ein, z. B. Makro Datumsbereich.Dialogfeld schließen.
Im Open-Ereignis des Berichts wird Access die im Untermakro "Dialogfeld öffnen" des Objekts "Makro Datumsbereich" definierten Aktionen ausführen. Vergleichbar wird Access beim Schließen des Berichts die im Untermakro "Dialogfeld schließen" des Objekts "Makro Datumsbereich" definierten Aktionen ausführen.
-
Speichern und schließen Sie den Bericht.
Schritt 7: Probieren Sie es aus
Nachdem Sie nun alle Access-Objekte erstellt haben, wird es Zeit, sie auszuprobieren. Öffnen Sie den Bericht in der Berichtsansicht oder Seitenansicht und beachten Sie, dass Ihr Parameterformular im Dialogmodus geöffnet wird, bevor Access den Bericht anzeigt. Geben Sie die erforderlichen Kriterien in die zuvor erstellten Textfelder ein, und klicken Sie dann im Formular auf die Befehlsschaltfläche OK. Access blendet dann das Formular aus (Sichtbar = Nein) und öffnet den Bericht nur mit den Daten, die den Kriterien entsprechen. Dies funktioniert, da die Parameterabfrage, auf welcher der Bericht basiert, die Werte in den Steuerelementen im ausgeblendeten Formular lesen kann. Wenn Sie den Bericht schließen, schließt Access auch das Parameterformular.