Verwenden der QBF-Technik (Query by Form) in Microsoft Access
Ursprüngliche KB-Nummer: 304428
Hinweis
Erfordert grundlegende Makro-, Codierungs- und Interoperabilitätskenntnisse. Dieser Artikel gilt nur für eine Microsoft Access-Datenbank (.mdb oder .accdb).
Zusammenfassung
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 das Sie Abfragekriterien eingeben. Dieses Formular enthält leere Textfelder. Jedes Textfeld stellt ein Feld in einer Tabelle dar, das Sie abfragen möchten. Einträge werden nur in den Textfeldern vorgenommen, für die Sie Suchkriterien angeben möchten.
Das QBF-Formular ähnelt einem Dateneingabeformular mit Feldern, die mit den Feldern in einer Tabelle übereinstimmen. Eine Tabelle mit Feldern für Name, Adresse, Ort, Bundesland und Postleitzahl kann ein QBF-Formular mit entsprechenden Feldern enthalten. Um bestimmte Datensätze auszuwählen, können Sie eine beliebige Kombination von Suchkriterien in das Formular eingeben. Sie können nur eine Stadt, eine Stadt und einen Bundesstaat oder nur eine Postleitzahl oder eine beliebige andere Kombination angeben. Felder, die Sie leer lassen, werden ignoriert. Wenn Sie auf eine Befehlsschaltfläche im Formular klicken, 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 Orders 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. Klicken Sie nach jeder Kombination auf Suchen:
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 auf die Schaltfläche Suchen klicken, 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
Formen! 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 leicht unterschiedliche Ergebnisse zurückzugeben.
Hinweis
In den folgenden Beispielkriterien wird ein Unterstrich (_) als Zeilenfortsetzungszeichen verwendet. Entfernen Sie den Unterstrich vom Ende der Zeile, wenn Sie diese Kriterien neu erstellen.
Wie Formulare! FormName! ControlName& "*" oder _ Forms! FormName! ControlNameIst NULL
Diese Criteria-Anweisung ist identisch mit dem obigen QBF-Beispiel, mit der Ausnahme, dass Sie abfragen können, indem Sie einen Wildcard verwenden. Wenn Sie beispielsweise "Jo" mithilfe dieser Criteria-Anweisung in ein Feld eingeben, gibt die Abfrage jeden Datensatz in dem Feld zurück, der mit "Jo" beginnt. Dazu gehören Johnson, Jones, Johanna und so weiter.
Zwischen Formularen! FormName! StartDate und Formulare! FormName! EndDate oder _ Forms! FormName! StartDate ist NULL
Sie können diese criteria-Anweisung verwenden, um ein Datumsfeld mithilfe der Textfelder Startdatum und Enddatum im Abfrageformular abzufragen. Datensätze, deren Start- und Enddatum zwischen den Werten liegen, die Sie im Abfrageformular angeben, werden zurückgegeben. Wenn Sie jedoch einen Startdatumswert im Formular weglassen, gibt die Abfrage alle Datensätze zurück, unabhängig vom Enddatum-Wert.
Wie Formulare! FormName! ControlName& "*" oder ist NULL
Diese Criteria-Anweisung gibt sowohl Datensätze zurück, die den Kriterien entsprechen, als auch Datensätze, die NULL sind. Wenn die Kriterien NULL sind, werden alle Datensätze zurückgegeben. Beachten Sie, dass das Sternchen (*) als Parameter angesehen wird, da es Teil eines größeren Like-Ausdrucks ist. Da das Sternchen ein hartcodierter Kriterienwert ist (z. B. wie "*"), werden Datensätze mit NULL-Werten zurückgegeben.
Wie 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 sind, 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 (das gleiche Ergebnis wie im obigen Beispiel).
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für