Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ursprüngliche KB-Nummer: 304428
Notiz
Erfordert grundlegende Makro-, Codierungs- und Interoperabilitätskenntnisse. Dieser Artikel gilt nur für eine Microsoft Access-Datenbank (.mdb oder .accdb).
Übersicht
In diesem Artikel erfahren Sie, wie Sie mithilfe eines Formulars die Kriterien für eine Abfrage angeben. Diese Technik wird als Abfrage nach Formular (QBF) bezeichnet.
Weitere Informationen
In der QBF-Technik erstellen Sie ein Formular, in dem Sie Abfragekriterien eingeben. Dieses Formular enthält leere Textfelder. Jedes Textfeld stellt ein Feld in einer Tabelle dar, das Sie abfragen möchten. Sie erstellen Einträge nur in den Textfeldern, für die Sie Suchkriterien angeben möchten.
Das QBF-Formular ähnelt einem Dateneingabeformular mit Feldern, die den Feldern in einer Tabelle entsprechen. Eine Tabelle mit Feldern für Name, Adresse, Ort, Bundesland und POSTLEITZAHL kann ein QBF-Formular mit entsprechenden Feldern aufweisen. Zum Auswählen bestimmter Datensätze können Sie eine beliebige Kombination von Suchkriterien in das Formular eingeben. Sie können nur eine Stadt oder eine Stadt und ein Bundesland oder nur eine Postleitzahl oder eine beliebige andere Kombination angeben. Felder, die Sie leer lassen, werden ignoriert. Wenn Sie eine Befehlsschaltfläche im Formular auswählen, führt Access eine Abfrage aus, die die Suchkriterien aus Ihrem Formular verwendet.
Führen Sie die folgenden Schritte aus, um die QBF-Technik zu verwenden:
Öffnen Sie die Beispieldatenbank Northwind.mdb.
Erstellen Sie ein neues Formular, das nicht auf einer Tabelle oder Abfrage basiert, und speichern Sie es als QBF_Form.
Erstellen Sie im neuen Formular zwei Textfelder und eine Befehlsschaltfläche mit den folgenden Eigenschaften. Speichern Sie dann das Formular:
Text box 1 ------------------ Name: WhatCustomer Text box 2 ------------------ Name: WhatEmployee Command button 1: ------------------ Caption: Search OnClick: QBF_Macro
Erstellen Sie das folgende neue Makro, und speichern Sie es dann als QBF_Macro:
Action: OpenQuery Query Name: QBF_Query View: Datasheet Data Mode: Edit
Erstellen Sie die folgende neue Abfrage, die auf der Tabelle "Bestellungen" basiert, und speichern Sie sie dann als QBF_Query:
Field: CustomerID Sort: Ascending Criteria: Forms![QBF_Form]![WhatCustomer] Or Forms![QBF_Form]![WhatCustomer] Is Null Field: EmployeeID Sort: Ascending Criteria: Forms![QBF_Form]![WhatEmployee] Or Forms![QBF_Form]![WhatEmployee] Is Null NOTE: When you type the criteria, make sure that you type the entire criteria in a single Criteria field; do not split the criteria by placing the 'Or' section on a separate row. Field: OrderID Field: OrderDate
Öffnen Sie QBF_Form in der Formularansicht. Geben Sie die folgenden Kombinationen von Kriterien ein. Wählen Sie nach jeder Kombination "Suchen" aus:
Customer ID Employee ID Result ------------------------------------------------------- <blank> <blank> All 830 orders AROUT <blank> 13 orders AROUT 4 4 AROUT orders for employee 4 <blank> 4 156 orders for employee 4
Nachdem Sie das Resultset für jede Abfrage angezeigt haben, schließen Sie das Datenblattfenster. Beginnen Sie dann mit der nächsten Suche. Jedes Mal, wenn Sie die Schaltfläche "Suchen " auswählen, filtern die Parameter in der QBF-Abfrage die Daten basierend auf den Suchkriterien, die Sie im QBF-Abfrageformular angegeben haben.
Hinweise zu den QBF-Parameterkriterien
Die QBF-Beispielabfrage in diesem Artikel implementiert Kriterien in der Abfrage als
Formt!FormName!ControlNameoder Formulare!FormName!ControlNameist Null
um die Daten zu filtern. Diese Kriterien geben alle übereinstimmenden Datensätze zurück. Wenn der Kriterienwert null ist, werden alle Datensätze für das angegebene Feld zurückgegeben.
Sie können eines der folgenden alternativen Kriterien angeben, um geringfügig andere Ergebnisse zurückzugeben.
Notiz
In den folgenden Beispielkriterien wird ein Unterstrich (_) als Zeilenfortsetzungszeichen verwendet. Entfernen Sie den Unterstrich vom Ende der Zeile, wenn Sie diese Kriterien erneut erstellen.
Like Forms!**FormName**!**ControlName**& "*" Or _ Forms!**FormName**!**ControlName**Is Null
Diese Kriterienausweisung ist identisch mit dem QBF-Beispiel, mit der Ausnahme, dass Sie mithilfe eines Wildcards abfragen können. Wenn Sie z. B. "Jo" in ein Feld eingeben, indem Sie diese Kriterienausweisung verwenden, gibt die Abfrage jeden Datensatz im Feld zurück, der mit "Jo" beginnt, einschließlich Johnson, Jones, Johanna usw.
Between Forms!**FormName**!StartDate And Forms!**FormName**!EndDate Or _ Forms!**FormName**!StartDate Is Null
Mit dieser Kriterienaufweisung können Sie ein Datumsfeld abfragen, indem Sie Textfelder "Startdatum" und "Enddatum" im Abfrageformular verwenden. Datensätze, deren Anfangs- und Enddaten zwischen den Werten liegen, die Sie im Abfrageformular angeben, werden zurückgegeben. Wenn Sie jedoch einen Anfangsterminwert im Formular weglassen, gibt die Abfrage unabhängig vom Enddatumswert alle Datensätze zurück.
Wie Formulare!FormName!ControlName& "*" oder Ist Null
Diese Criteria-Anweisung gibt beide Datensätze zurück, die den Kriterien und Datensätzen entsprechen, die null sind. Wenn die Kriterien null sind, werden alle Datensätze zurückgegeben. Das Sternchen (*) wird als Parameter betrachtet, da es Teil eines größeren Like-Ausdrucks ist. Da das Sternchen ein hartcodierter Kriterienwert ist (z. B. "*"), werden Datensätze mit NULL-Werten zurückgegeben.
Like IIf(IsNull(Forms!**FormName**![**ControlName**]), _ "*",[Forms]![**FormName**]![**ControlName**])
Diese Criteria-Anweisung gibt alle Datensätze zurück, die den Kriterien entsprechen. Wenn im Abfrageformular keine Kriterien angegeben werden, werden alle Datensätze zurückgegeben, die nicht NULL sind.
IIf(IsNull(Forms!**FormName**![**ControlName**]), _ [**FieldName**],[Forms]![**FormName**]![**ControlName**])
Dadurch werden alle Datensätze zurückgegeben, die den Kriterien entsprechen. Wenn im Abfrageformular keine Kriterien angegeben werden, werden alle Datensätze zurückgegeben, die nicht NULL sind (dasselbe Ergebnis wie im Beispiel).