Jak používat techniku dotazování podle formuláře (QBF) v Microsoft Accessu
Původní číslo KB: 304428
Poznámka
Vyžaduje základní dovednosti v oblasti maker, kódování a vzájemné spolupráce. Tento článek se týká pouze databáze Microsoft Access (.accdb a .mdb).
Souhrn
V tomto článku se dozvíte, jak pomocí formuláře zadat kritéria pro dotaz. Tato technika se nazývá dotaz podle formuláře (QBF).
Další informace
V technice QBF vytvoříte formulář, ve kterém zadáte kritéria dotazu. Tento formulář obsahuje prázdná textová pole. Každé textové pole představuje pole v tabulce, na které se chcete dotazovat. Položky se zadávají jenom v textových polích, pro která chcete zadat kritéria hledání.
Formulář QBF se podobá formuláři pro zadávání dat, který obsahuje pole, která odpovídají polím v tabulce. Tabulka, která obsahuje pole pro Jméno, Adresu, Město, Stát a PSČ, může mít formulář QBF, který obsahuje odpovídající pole. Pokud chcete vybrat určité záznamy, můžete do formuláře zadat libovolnou kombinaci kritérií hledání. Můžete zadat pouze město, město a stát, nebo pouze PSČ nebo jakoukoli jinou kombinaci. Pole, která ponecháte prázdná, se ignorují. Když ve formuláři kliknete na příkazové tlačítko, Access spustí dotaz, který používá kritéria hledání z formuláře.
Pokud chcete použít techniku QBF, postupujte takto:
Otevřete Northwind.mdb ukázkové databáze.
Vytvořte nový formulář, který není založený na žádné tabulce nebo dotazu, a uložte ho jako QBF_Form.
V novém formuláři vytvořte dvě textová pole a jedno příkazové tlačítko, které má následující vlastnosti. Pak formulář uložte:
Text box 1 ------------------ Name: WhatCustomer Text box 2 ------------------ Name: WhatEmployee Command button 1: ------------------ Caption: Search OnClick: QBF_Macro
Vytvořte následující nové makro a uložte ho jako QBF_Macro:
Action: OpenQuery Query Name: QBF_Query View: Datasheet Data Mode: Edit
Vytvořte následující nový dotaz založený na tabulce Objednávky a uložte ho 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
Otevřete QBF_Form ve formulářovém zobrazení. Zadejte následující kombinace kritérií. Po každé kombinaci klikněte na Hledat:
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 zobrazení sady výsledků pro každý dotaz zavřete okno Datový list. Pak spusťte další hledání. Pokaždé, když kliknete na tlačítko Hledat , parametry v dotazu QBF filtrují data na základě kritérií hledání zadaných ve formuláři dotazu QBF.
Poznámky ke kritériím parametrů QBF
Ukázkový dotaz QBF v tomto článku implementuje kritéria v dotazu jako
Formuláře! FormName! ControlName (Název ovládacího prvku)Nebo Formuláře! FormName! ControlName (Název ovládacího prvku)Je null
a vyfiltrujte data. Tato kritéria vrátí všechny odpovídající záznamy. Pokud je hodnota kritéria null, vrátí se všechny záznamy pro zadané pole.
Pokud chcete vrátit mírně odlišné výsledky, můžete zadat libovolné z následujících alternativních kritérií.
Poznámka
V následujících ukázkových kritériích se jako znak pokračování řádku používá podtržítko (_). Při opětovném vytvoření těchto kritérií odeberte podtržítko z konce řádku.
Like Forms! FormName! ControlName& "*" nebo _ Forms! FormName! ControlName (Název ovládacího prvku)Je null
Toto kritérium je stejné jako výše uvedená ukázka QBF, ale dotaz můžete použít zástupný znak. Pokud například zadáte "Jo" do pole pomocí tohoto příkazu kritéria, dotaz vrátí všechny záznamy v poli, které začíná na "Jo". Patří sem Johnson, Jones, Johanna a tak dále.
Mezi formuláři! FormName! StartDate a formuláře! FormName! EndDate nebo _ Forms! FormName! StartDate má hodnotu Null.
Tento příkaz kritéria můžete použít k dotazování pole kalendářního data pomocí textových polí Počáteční datum a Koncové datum ve formuláři dotazu. Vrátí se záznamy, jejichž počáteční a koncové datum spadá mezi hodnoty zadané ve formuláři dotazu. Pokud ale hodnotu Počáteční datum ve formuláři vynecháte, dotaz vrátí všechny záznamy bez ohledu na hodnotu Koncové datum.
Like Forms! FormName! ControlName& "*" nebo je null
Tento příkaz kritéria vrátí jak záznamy, které splňují kritéria, tak záznamy, které mají hodnotu null. Pokud jsou kritéria null, vrátí se všechny záznamy. Všimněte si, že hvězdička (*) se považuje za parametr, protože je součástí většího výrazu Like. Protože hvězdička je pevně zakódovaná hodnota kritérií (například Like "*"), vrátí se záznamy s hodnotami null.
Like IIf(IsNull(Forms!FormName! [ControlName]), _ "*",[Forms]! [FormName]! [ControlName])
Tento příkaz kritéria vrátí všechny záznamy, které splňují kritéria. Pokud nejsou ve formuláři dotazu zadána žádná kritéria, vrátí se všechny záznamy, které nemají hodnotu null.
IIf(IsNull(Forms!FormName! [ControlName]), _ [FieldName],[Forms]! [FormName]! [ControlName])
Tím se vrátí všechny záznamy, které splňují kritéria. Pokud nejsou ve formuláři dotazu zadána žádná kritéria, vrátí se všechny záznamy, které nemají hodnotu null (stejný výsledek jako v příkladu výše).
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro