Jak używać techniki zapytania według formularza (QBF) w programie Microsoft Access
Oryginalny numer KB: 304428
Uwaga
Wymaga podstawowych umiejętności w zakresie makr, kodowania i współdziałania. Ten artykuł dotyczy tylko bazy danych programu Microsoft Access (.mdb lub .accdb).
Podsumowanie
W tym artykule pokazano, jak za pomocą formularza określić kryteria zapytania. Ta technika jest nazywana zapytaniem według formularza (QBF).
Więcej informacji
W technice QBF tworzysz formularz, w którym wprowadzasz kryteria zapytania. Ten formularz zawiera puste pola tekstowe. Każde pole tekstowe reprezentuje pole w tabeli, dla których chcesz wykonać zapytanie. Wpisy można tworzyć tylko w polach tekstowych, dla których chcesz określić kryteria wyszukiwania.
Formularz QBF przypomina formularz wpisu danych, który zawiera pola zgodne z polami w tabeli. Tabela zawierająca pola Nazwa, Adres, Miasto, Stan i Kod POCZTOWY może mieć formularz QBF zawierający odpowiednie pola. Aby wybrać określone rekordy, możesz wprowadzić dowolną kombinację kryteriów wyszukiwania w formularzu. Możesz określić tylko miasto, miasto i stan, tylko kod pocztowy lub dowolną inną kombinację. Pola, które pozostawisz puste, są ignorowane. Po kliknięciu przycisku polecenia w formularzu program Access uruchamia zapytanie, które używa kryteriów wyszukiwania z formularza.
Aby użyć techniki QBF, wykonaj następujące kroki:
Otwórz przykładową Northwind.mdb bazy danych.
Utwórz nowy formularz, który nie jest oparty na żadnej tabeli lub zapytaniu, i zapisz go jako QBF_Form.
W nowym formularzu utwórz dwa pola tekstowe i jeden przycisk polecenia, który ma następujące właściwości. Następnie zapisz formularz:
Text box 1 ------------------ Name: WhatCustomer Text box 2 ------------------ Name: WhatEmployee Command button 1: ------------------ Caption: Search OnClick: QBF_Macro
Utwórz następujące nowe makro, a następnie zapisz je jako QBF_Macro:
Action: OpenQuery Query Name: QBF_Query View: Datasheet Data Mode: Edit
Utwórz następujące nowe zapytanie oparte na tabeli Orders(Zamówienia), a następnie zapisz je jako 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
Otwórz QBF_Form w widoku Formularz. Wprowadź następujące kombinacje kryteriów. Kliknij pozycję Wyszukaj po każdej kombinacji:
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
Po wyświetleniu zestawu wyników dla każdego zapytania zamknij okno Arkusz danych. Następnie rozpocznij następne wyszukiwanie. Za każdym razem, gdy klikniesz przycisk Wyszukaj , parametry zapytania QBF filtrują dane na podstawie kryteriów wyszukiwania określonych w formularzu zapytania QBF.
Uwagi dotyczące kryteriów parametrów QBF
Przykładowe zapytanie QBF w tym artykule implementuje kryteria w zapytaniu jako
Formularzy! FormName! ControlNameLub Formularze! FormName! ControlNameMa wartość null
w celu filtrowania danych. Te kryteria zwracają wszystkie pasujące rekordy. Jeśli wartość kryteriów ma wartość null, wszystkie rekordy są zwracane dla określonego pola.
Możesz określić dowolne z następujących kryteriów alternatywnych, aby zwrócić nieco inne wyniki.
Uwaga
W poniższych przykładowych kryteriach podkreślenie (_) jest używane jako znak kontynuacji wiersza. Usuń podkreślenie z końca wiersza podczas ponownego tworzenia tych kryteriów.
Lubię formularze! FormName! ControlName& "*" Lub _ Forms! FormName! ControlNameMa wartość null
Ta instrukcja kryteriów jest taka sama jak powyższy przykład QBF, z tą różnicą, że można wykonywać zapytania przy użyciu symbolu wieloznacznego. Jeśli na przykład wprowadzisz ciąg "Jo" w polu przy użyciu tej instrukcji kryteriów, zapytanie zwróci każdy rekord w polu rozpoczynanym od "Jo". Dotyczy to również Johnsona, Jonesa, Johanny itd.
Między formularzami! FormName! StartDate i formularze! FormName! EndDate lub _ Forms! FormName! Parametr StartDate ma wartość Null
Ta instrukcja kryteriów służy do wykonywania zapytań dotyczących pola daty przy użyciu pól tekstowych Data rozpoczęcia i Data zakończenia w formularzu zapytania. Zwracane są rekordy, których daty rozpoczęcia i zakończenia mieszczą się między wartościami określonymi w formularzu zapytania. Jeśli jednak pominiesz wartość Daty rozpoczęcia w formularzu, zapytanie zwróci wszystkie rekordy, niezależnie od wartości Data zakończenia.
Lubię formularze! FormName! ControlName& "*" lub ma wartość null
Ta instrukcja kryteriów zwraca zarówno rekordy zgodne z kryteriami, jak i rekordy o wartości null. Jeśli kryteria mają wartość null, zwracane są wszystkie rekordy. Należy pamiętać, że gwiazdka (*) jest uważana za parametr, ponieważ jest częścią większego wyrażenia Like. Ponieważ gwiazdka jest wartością kryteriów zakodowanych na stałe (na przykład Like "*"), zwracane są rekordy z wartościami null.
Podobnie jak IIf(IsNull(Forms!FormName! [ControlName]), _ "*",[Forms]! [FormName]! [ControlName])
Ta instrukcja kryteriów zwraca wszystkie rekordy zgodne z kryteriami. Jeśli w formularzu zapytania nie określono żadnych kryteriów, zwracane są wszystkie rekordy, które nie mają wartości null.
IIf(IsNull(Forms!FormName! [ControlName]), _ [FieldName],[Forms]! [FormName]! [ControlName])
Spowoduje to zwrócenie wszystkich rekordów zgodnych z kryteriami. Jeśli w formularzu zapytania nie określono żadnych kryteriów, zwracane są wszystkie rekordy , które nie mają wartości null (taki sam wynik jak w powyższym przykładzie).
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla