Přihlásit se pomocí účtu Microsoft
Přihlaste se nebo si vytvořte účet.
Dobrý den! Zdravíme uživatele
Select a different account.
Máte více účtů.
Zvolte účet, pomocí kterého se chcete přihlásit.

Střední: Vyžaduje základní maker, kódování a interoperability dovedností.


Tento článek se týká pouze projektu Microsoft Access (ADP).


Příznaky

Při pokusu o filtrování pomocí hodnotu, která je zobrazena na jiný objekt, například jiný formulář aplikace Access, aplikace Access formuláře nebo sestavy není filtr použit.

Řešení

Existuje několik metod, které jeden mohl použít k překladu neschopnost filtr formuláře nebo sestavy, který je vázán k uložené proceduře nebo funkci. Většina těchto řešení týkají nahrazení uložené procedury nebo funkce jiného typu záznamu zdroje, například tabulky, zobrazení nebo příkazu SQL.

Však následující řešení se dozvíte, jak můžete nadále používat uložené procedury jako zdroje záznamů pro formulář při úspěšné implementaci filtr a podmínka WHERE.

Upozornění: Pokud budete postupovat podle kroků v tomto příkladu, změníte ukázkový projekt Access projektu NorthwindCS.adp. Můžete chtít zálohovat soubor projektu NorthwindCS.adp a proveďte následující kroky s kopií projektu.

  1. Otevřete ukázkový projekt NorthwindCS.adp.

  2. V okně Databáze klepněte na tlačítko Zvýraznit tabulky kategorie a potom v nabídce Vložit klepněte na tlačítko Automatický formulář .

    Poznámka: Pokud používáte aplikaci Access 2007, klepněte na tlačítko Zvýraznit tabulky kategorie v okně databáze a potom klepněte na formulář ve skupině formuláře na kartě vytvořit .

  3. Otevřete formulář v návrhovém zobrazení.

  4. Odstranit objekt podformulář s názvem Table.Products z hlavního formuláře a potom přidat příkazové tlačítko do formuláře. Pokud se spustí průvodce, klepněte na tlačítko Storno.

  5. Nastavte následující vlastnosti příkazového tlačítka:
    Name: cmdFilterProducts
    Caption: Filter Products
    On Click: [Event Procedure]

  6. Nastavte vlastnost Při klepnutí příkazového tlačítka na následující proceduru události:

    Private Sub cmdFilterProducts_Click()
    DoCmd.OpenForm "Products", acNormal, , , acFormEdit, acWindowNormal
    End Sub
  7. V nabídce soubor klepněte na tlačítko Zavřít a návrat do aplikace Microsoft Access.

  8. V nabídce soubor klepněte na tlačítko Uložita uložte formulář jako Categories1.

    Poznámka: V panelu nástrojů Rychlý přístup klepněte na tlačítko Uložit.

  9. V okně Databáze klepněte na položku dotazya potom klepněte na tlačítko Nový.

    Poznámka: Pokud používáte aplikaci Access 2007, klepněte ve skupině jiné na kartě vytvořitPrůvodce dotazem .

  10. V dialogovém okně Nový dotaz klepněte na položku Vytvořit Text uloženou procedurua potom klepněte na tlačítko OK.

  11. Zadejte nebo vložte následující příkaz Transact-SQL zavřete a uložte postup s názvem výchozí spProducts:

    CREATE PROCEDURE spProducts
    @CatID int
    AS
    SELECT * FROM Products WHERE CategoryID = @CatID
    RETURN
  12. Otevřete formulář výrobků v návrhovém zobrazení a změňte vlastnost Zdroj záznamů z produktů spProducts.

  13. Přejděte na vlastnost vstupní parametry formuláře a potom přiřaďte následující hodnotu pro tuto vlastnost:

    @CatID int = Forms! [Categories1]! [ČísloKategorie]

  14. Zavřete a uložte formulář výrobky a poté otevřete formulář Categories1.

  15. Procházet NázevKategorie Confectionsa potom klepněte na tlačítko Filtr produktů . Všimněte si, že produkty formulář otevře a zobrazí pouze produkty, kde je rovno Confections kategorie.

Stav

Toto chování je záměrné.

Další informace

Přístupu uživatelů, často vhodné omezit počet záznamů, které se zobrazí aplikace Access formuláře nebo sestavy. Jedna metoda tohoto postupu je filtrovat záznamy na formulář (nebo sestavu) s podmínka WHERE a umožňuje zadat podmíněné hodnotu některý jiný objekt. Například jeden formulář, můžete zobrazit podmíněné hodnotu, který bude použit v jiném formuláři za účelem omezení počtu záznamů, které mají být zobrazeny. Pokud formulář, který chcete filtrovat má jako zdroj záznamů uložené procedury nebo funkce, je ignorována filtr. Následující kroky popisují toto chování.

Upozornění: Pokud budete postupovat podle kroků v tomto příkladu, změníte ukázkový projekt Access projektu NorthwindCS.adp. Můžete chtít zálohovat soubor projektu NorthwindCS.adp a proveďte následující kroky s kopií projektu.

Kroky pro reprodukci chování v přístupu 2003

  1. Postupujte podle kroků 1 až 5 části "Řešení" dříve v tomto článku.

  2. Nastavte vlastnost Při klepnutí příkazového tlačítka na následující proceduru události:

    Private Sub cmdFilterProducts_Click()
    DoCmd.OpenForm "Products", acNormal, , "[CategoryID] = " & Me!CategoryID, acFormEdit, acWindowNormal
    End Sub
  3. V nabídce soubor klepněte na tlačítko Zavřít a návrat do aplikace Microsoft Access.

  4. V nabídce soubor klepněte na tlačítko Uložita uložte formulář jako Categories1.

  5. Otevřete formulář ve formulářovém zobrazení.

  6. Procházet NázevKategorie Confectionsa potom klepněte na tlačítko Filtr produktů . Všimněte si, že produkty formulář otevře a zobrazí pouze produkty, kde je rovno Confections kategorie.

  7. Zavřete produktů a Categories1 formulářů.

  8. V okně Databáze klepněte na položku dotazya potom klepněte na tlačítko Nový. Klepněte na položku Vytvořit Text uloženou procedurua potom klepněte na tlačítko OK.

  9. Zadejte nebo vložte následující příkaz Transact-SQL zavřete a uložte postup s názvem výchozí spProducts:

    CREATE PROCEDURE spProducts
    AS
    SELECT * FROM Products
    RETURN
  10. Otevřete formulář výrobků v návrhovém zobrazení a potom změnit vlastnost RecordSource z produktů na spProducts.

  11. Zavřete a uložte formulář výrobky a poté otevřete formulář Categories1.

  12. Procházet NázevKategorie Confectionsa potom klepněte na tlačítko Filtr produktů . Všimněte si, že formulář výrobky otevře a zobrazí pouze produkty všechny produkty v kategorii Confections.

Potřebujete další pomoc?

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojit se k programu Microsoft Insider

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?

Děkujeme vám za zpětnou vazbu.

×