Anwenden eines Filters beim Öffnen eines Formulars oder Berichts

Wenn Sie VBA-Code (Visual Basic for Applications) zum Öffnen eines Formulars oder Berichts verwenden, sollten Sie angeben, welche Datensätze angezeigt werden sollen. Sie können die im Formular oder Bericht anzuzeigenden Datensätze auf mehrere Weisen angeben. Ein häufiger Ansatz besteht aus dem Anzeigen eines benutzerdefinierten Dialogfelds, in dem der Benutzer Kriterien für die zugrunde liegende Abfrage des Formulars oder Berichts eingibt. Um die Kriterien abzurufen, verweisen Sie auf die Steuerelemente im Dialogfeld. Die folgenden Abschnitte beschreiben drei Möglichkeiten für die Verwendung von Kriterien, die Sie in einem benutzerdefinierten Dialogfeld zum Filtern von Datensätzen eingegeben haben.

Verwenden des wherecondition-Arguments

Das wherecondition-Argument der OpenForm - oder OpenReport-Methode oder -Aktion ist die einfachste Möglichkeit zum Abrufen von Kriterien in Situationen, in denen ein Benutzer nur einen Wert bereitstellt. Sie können beispielsweise ein Formular anzeigen, das Benutzer zur Auswahl einer Bestell-ID für die zu druckende Rechnung auffordert. Wenn Sie eine Ereignisprozedur verwenden, können Sie einen Filter anwenden, der nur einen Datensatz anzeigt, indem Sie ein Argument zur OpenReport -Methode hinzufügen, wie in der folgenden Codezeile gezeigt wird:

DoCmd.OpenReport "Invoice", acViewPreview, , "OrderID = " & OrderID 

Der "OrderID = " im Filterausdruck verweist auf das Feld OrderID in der dem Rechnungsbericht zugrunde liegenden Abfrage. "OrderID" auf der rechten Seite des Ausdrucks verweist auf den Wert, den der Benutzer in der Liste "OrderID" im Dialogfeld ausgewählt hat. Der Ausdruck verkettet beide, sodass der Bericht nur die Rechnung für den vom Benutzer ausgewählten Datensatz einschließt.

Das wherecondition-Argument wird nur von der Ereignisprozedur angewendet, die für das OnClick-Ereignis der Schaltfläche angegeben wird, die die OpenForm- oder OpenReport-Methode ausführt. So erhalten Sie die Flexibilität, eine beliebige Anzahl unterschiedlicher Dialogfelder zu verwenden, um den gleichen Bericht oder das gleiche Formular zu öffnen und verschiedene Kriterien anzuwenden, je nachdem, was der Benutzer möchte. Der Benutzer kann zum Beispiel eine Rechnung für einen bestimmten Kunden drucken oder Bestellungen nur für ein bestimmtes Produkt anzeigen.

Verwenden Sie das Wherecondition-Argument , um Kriterien für mehrere Felder festzulegen. Wenn Sie dies jedoch tun, wird die Argumenteinstellung schnell lang und kompliziert. In diesen Fällen kann das Angeben von Kriterien in einer Abfrage einfacher sein.

Verwenden einer Abfrage als Filter

Eine separate Abfrage, die manchmal als Filterabfrage bezeichnet wird, kann auf die Steuerelemente in Ihrem Dialogfeld verweisen, um dessen Kriterien abzurufen. Bei diesem Ansatz filtern Sie die Datensätze in einem Formular oder Bericht, indem Sie das Filtername-Argument der OpenForm - oder OpenReport-Methode oder -Aktion auf den Namen der von Ihnen erstellten Filterabfrage festlegen. Die Filterabfrage muss alle Tabellen in der Datensatzquelle des Formulars oder Berichts enthalten, das bzw. den Sie öffnen möchten. Außerdem muss die Filterabfrage entweder alle Felder im Formular oder Bericht enthalten, das bzw. den Sie öffnen, oder Sie müssen die OutputAllFields-Eigenschaft auf Ja festlegen.

Nachdem Sie die Abfrage, die als Filter verwendet werden soll, erstellt und gespeichert haben, legen Sie das filtername-Argument der OpenReport-Methode oder -Aktion auf den Namen der Filterabfrage fest. Das filtername-Argument wendet die angegebene Filterabfrage bei jeder Ausführung der OpenReport-Methode an.

Das Verwenden einer Abfrage als Filter zum Festlegen der Kriterien hat Vorteile ähnlich dem Verwenden des wherecondition-Arguments der OpenForm- oder OpenReport-Methode. Eine Filterabfrage ermöglicht Ihnen die gleiche Flexibilität wie das Verwenden mehrerer Dialogfelder zum Öffnen des gleichen Formulars oder Berichts und das Anwenden unterschiedlicher Kriterien - je nach den Wünschen des Benutzers.

Direktes Verweisen auf Dialogfeld-Steuerelemente in der zugrunde liegenden Abfrage eines Formulars oder Berichts

Sie können auch direkt auf die Dialogfeld-Steuerelemente in der zugrunde liegenden Abfrage eines Formulars oder Berichts verweisen anstatt die Argumente der OpenForm- oder der OpenReport-Methode zu verwenden. Bei Verwendung dieses Ansatzes erfordert die OpenForm- oder OpenReport-Methode oder -Aktion kein wherecondition- oder filtername-Argument. Jedes Mal, wenn Sie ein Formular oder einen Bericht öffnen, sucht die zugrunde liegende Abfrage stattdessen nach dem Dialogfeld, um die Kriterien abzurufen. Wenn ein Benutzer das Formular oder den Bericht allerdings im Datenbankfenster anstatt über das Dialogfeld öffnet, zeigt Access ein Parameterfeld an, das den Benutzer zur Eingabe des Dialogfeldwerts auffordert.

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.