Použití zástupných znaků v dotazu formuláře aplikace InfoPath při vytváření vazby ke zdroji dat ADO

Překlady článku Překlady článku
ID článku: 826992 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Aplikace Microsoft Office InfoPath díky vazby Microsoft SQL Server nebo aplikace Microsoft Access které snadné. Aplikace InfoPath můžete automaticky generovat jednoduché a přímé dotazy do databáze aplikace Access nebo k databázi SQL pomocí služby Microsoft ActiveX Data Objects (ADO). Aplikace InfoPath umožňuje pak výsledky dotazu zobrazit a upravovat ve formuláři.

Rozšířené dotazů aplikace InfoPath zpřístupní několik programovacích metod pro pokročilé uživatele a vývojáře. Tyto metody programování povolte pokročilé uživatele nebo vývojáře k vytvoření formuláře, které můžete provést vlastní dotaz používající složitější syntaxe jazyka SQL. Příkladem běžné vlastní dotaz používá zástupný znak najít záznamy, které částečně odpovídají zadaným kritériím.

Následující kroky ukazují, jak používat spravovaný kód v aplikaci InfoPath provádět hledání zástupných znaků pomocí tabulky SQL nebo tabulky aplikace Access ADOAdapter objekt.

Další informace

Aplikace InfoPath umožňuje nádech jako datové připojení pro dotazyAdoQueryConnection objekt. To vám metody získání a nastavení informace o následujících položkách:
  • Řetězec připojení
  • Text příkazu SQL
  • Hodnota časového limitu
Pomocí AdoQueryConnectionobjekt můžete změnit příkaz SQL provádět složitější operace, jako je například dotaz, který používá zástupné znaky.

Informace v tomto článku platí SQL databází a databází aplikace Access. Následující příklady používají databázi Northwind, která je součástí aplikace Microsoft Office Access 2007 a Microsoft Office Access do roku 2010.

Vytvoření databáze

Pokud jste dosud nepoužili ukázkovou databázi Northwind z verze aplikace InfoPath, vytvořte databázi místně. Chcete-li to provést, postupujte takto:

  1. Spusťte aplikaci Microsoft Office Access.
  2. VDostupné šablonyVyberteUkázkové šablony.
  3. Vyberte Northwind databáze a poté klepněte naVytvořit.

Návrh formuláře zadávání dotazů do databáze

Tato část popisuje, jak navrhnout formulář dotazu v aplikaci InfoPath. V tomto příkladu v tabulce Dodavatelé z databáze Northwind. Chcete-li vytvořit formulář, který zjistí tuto tabulku, postupujte podle následujících kroků, které jsou k dispozici pro vaši verzi aplikace InfoPath.

Aplikace InfoPath 2010

Vytvořit šablonu formuláře a nastavte formulář šablony kódu jazyka C#. Chcete-li to provést, postupujte takto:
  1. Spuštění aplikace InfoPath Designer 2010.
  2. VRozšířené šablony formulářeVyberteDatabázea klepněte na tlačítko Navrhnout formulář.
  3. V Průvodci datovým připojením klepněte na tlačítko Vyberte databázi.
  4. Vyhledejte složku, kam jste uložili databázi Northwind, vyberte soubor Northwind.accdb a poté klepněte na tlačítko Otevřít.
  5. V Vybrat tabulku Vyberte okno, přejděte na konec seznamu, Dodavatelé Tabulka a potom klepněte na tlačítko OK.
  6. Ujistěte se, zda jsou vybrány pouze následující pole v Dodavatelé Tabulka:
    • ID
    • Společnost
    • Příjmení
    • Křestní_jméno
    • Job_Title
    • Business_Phone
  7. Klepněte na tlačítko Další.
  8. Klepněte na tlačítko Dokončitdokončení Průvodce datovým připojením.
  9. V Polepodokně rozbaltedataFieldsuzel a pak přetáhněte přidatd:Suppliersuzel a v rozevíracím seznamuSpustit dotaztlačítko.
  10. Pokud se zobrazí výzva, klepnutím vyberte Tabulka s opakováním.
  11. VPolepodokně rozbaltequeryFieldsuzel a pak přetáhněte přidatq: dodavatelé uzel a v rozevíracím seznamuNový záznamtlačítko. (Automaticky přidá oddíl, který obsahuje ovládací prvky.)
  12. Ve skupinovém rámečkuVývojářkarta, klepněte na tlačítkoJazyk.
  13. VProgramovací jazykoddíl vProgramovací jazyk šablony formuláře, vyberte C#a klepněte na tlačítkoOK.

Aplikace InfoPath 2007

Vytvoření šablony formuláře. Chcete-li to provést, postupujte takto:
  1. Spuštění aplikace InfoPath 2007.
  2. V navigačním podokněVyplnit formulář Dialogové okno, klepněte na tlačítko Návrh šablony formuláře.
  3. V Návrh šablony formuláře okna, Klepněte na tlačítko Prázdný a potom klepněte na tlačítko OK.
  4. V Nástroje nabídky, klepněte na tlačítko Data Připojenía klepněte na tlačítko Přidat. Na Data Připojení Otevře se okno.
  5. V Datové připojení okno, klepněte na Vyberte Vytvořit nové připojení k Klepnutím na zaškrtávací políčko Vyberte Přijímat Data Zaškrtněte políčko a klepněte na tlačítkoDalší.
  6. Klepnutím vyberte Databáze (Microsoft SQL Server nebo pouze aplikace Microsoft Office Access) Zaškrtněte políčko a klepněte na tlačítkoDalší.
  7. Klepněte na tlačítko Vyberte databázi.
  8. Vyhledejte složku, kam jste uložili databázi Northwind, vyberte složku a klepněte na tlačítko Otevřít.
  9. V Vybrat tabulkuDialogové okno, přejděte na konec seznamu, vyberteDodavateléTabulka a potom klepněte na tlačítkoOK.
  10. V Struktura zdroje datseznam, ujistěte se, zda jsou vybrány pouze následující záhlaví sloupce:
    • ID
    • Společnost
    • Křestní_jméno
    • Příjmení
    • Job_Title
    • Business_Phone
  11. Klepněte na tlačítkoDalší.
  12. Klepněte na tlačítko Navrhnout nejprve zobrazení data pak Klepněte na tlačítko Dokončit Ukončete Průvodce nastavením zdroje dat a vytvoření výchozí formulář.
  13. V Zdroj dat podokno úloh, poklepejte na položkudataFields.
  14. Přesunout d:Suppliers uzel Data zobrazení ve formuláři.
  15. Po výzvě, přidání d:Suppliers jako do Tabulka s opakováním.
  16. V Zobrazení nabídky, klepněte na tlačítko Správa Zobrazení.
  17. V Zobrazení podokno úloh, klepněteDotaz zobrazení.
  18. V Nástroje nabídky, klepněte na tlačítko Možnosti formuláře.
  19. V Kategorie Klepněte na položku Programování.
  20. V Programovací jazyk šablony formuláře Klepněte na tlačítko C#a klepněte na tlačítko OK.

Změna formuláře vlastní dotaz

Tato část popisuje, jak lze vyhledat záznamy obsahující hodnoty, které se podobají hledaný řetězec, ale neodpovídají přesně řetězec. Chcete-li hledat záznamy, které mají podobné hodnoty, můžete použít řetězec zástupných znaků aPODOBNĚ JAKOprohlášení v dotazu SQL. Když zástupný řetězec znaků aPODOBNĚ JAKOprohlášení jsou používány společně, mohou zobrazit záznamy na základě kritéria hledání zástupných znaků. Tyto záznamy jsou vráceny do aplikace InfoPath.

Změna formuláře vlastní dotaz spustitNázev úlohypole v aplikaci InfoPath 2010 nebo aplikace InfoPath 2007, postupujte takto:

  1. V návrhovém režimu klepněte pravým tlačítkem myši Spustit dotaz a pak klepněte na tlačítko Vlastnosti tlačítka.
  2. Proveďte následující změny:
    • Změnit Akce tlačítkaPravidla a vlastní kód
    • Změnit PopisekkSpustit dotaz
    • Změnit IDkbtnQuery
  3. Klepněte Upravit kód formuláře tlačítko použít změny a poté spusťte Visual Studio Tools pro editor aplikace. Spustí obslužnou rutinu události btnQuery "Clicked".
  4. Nahraďte komentář "/ / sem zadejte kód" s následujícím kódem:
    //Create an XPathNavigator object for the main data source
    XPathNavigator xnMain = this.MainDataSource.CreateNavigator();
     
    //Create an AdoQueryConnection from the main data source by "casting" the default
    //data connection to an "AdoQueryConnection"
    AdoQueryConnection cn = (AdoQueryConnection)this.DataConnections["Main connection"];
     
    //Obtain the default SQL command for the form.
    string strOrigSQLCommand = cn.Command.ToString();
     
     
     
    // Obtain the query node that you want to change.
    XPathNavigator xnSuppliersQuery = xnMain.SelectSingleNode("/dfs:myFields/dfs:queryFields/q:Suppliers", this.NamespaceManager);
     
    //Obtain the text that was entered for the wildcard character search, and then clear the current query parameter so that InfoPath will leave the current query parameter blank.
    string strJobTitle = xnSuppliersQuery.SelectSingleNode("@Job_Title", this.NamespaceManager).Value;
    xnSuppliersQuery.SelectSingleNode("@Job_Title", this.NamespaceManager).SetValue(string.Empty);
     
    //Have InfoPath construct an SQL command that is based on all other field values.
    string strMySQLCommand = cn.BuildSqlFromXmlNodes(xnSuppliersQuery);
     
    //Save the other query items, and then clear the other query items before the next query.
    string strSupplierID = xnSuppliersQuery.SelectSingleNode("@ID", this.NamespaceManager).Value;
    xnSuppliersQuery.SelectSingleNode("@ID", this.NamespaceManager).SetValue(string.Empty);
    string strCompany = xnSuppliersQuery.SelectSingleNode("@Company", this.NamespaceManager).Value;
    xnSuppliersQuery.SelectSingleNode("@Company", this.NamespaceManager).SetValue(string.Empty);
    string strLastName = xnSuppliersQuery.SelectSingleNode("@Last_Name", this.NamespaceManager).Value;
    xnSuppliersQuery.SelectSingleNode("@Last_Name", this.NamespaceManager).SetValue(string.Empty);
    string strFirstName = xnSuppliersQuery.SelectSingleNode("@First_Name", this.NamespaceManager).Value;
    xnSuppliersQuery.SelectSingleNode("@First_Name", this.NamespaceManager).SetValue(string.Empty);
    string strBusPhone = xnSuppliersQuery.SelectSingleNode("@Business_Phone", this.NamespaceManager).Value;
    xnSuppliersQuery.SelectSingleNode("@Business_Phone", this.NamespaceManager).SetValue(string.Empty);
     
    //Add Job_Title to the query so that Job_Title can support wildcard characters.
    if (strJobTitle != string.Empty)
    {
           if (strMySQLCommand != string.Empty)
                  strMySQLCommand += " AND ";
     
           //Check whether the user entered the wildcard character (%) as part of the title.
    if(strJobTitle.Contains("%"))
                 strMySQLCommand += "[Job Title] LIKE '" + strJobTitle + "'";
           else
                 strMySQLCommand += "[Job Title] LIKE '" + strJobTitle + "%'";               
    }
     
    //Construct the full query string.
    string strSQLQuery = strOrigSQLCommand;
    if (strMySQLCommand != string.Empty)
    strSQLQuery += " WHERE " + strMySQLCommand;
     
    //Set the command and run the query.
    cn.Command = strSQLQuery;
    cn.Execute();
     
    //Restore all the user entries to the Query fields so that the user entries will 
    //be available if you want to change and to rerun the query.
    xnSuppliersQuery.SelectSingleNode("@ID", this.NamespaceManager).SetValue(strSupplierID);
    xnSuppliersQuery.SelectSingleNode("@Company", this.NamespaceManager).SetValue(strCompany);
    xnSuppliersQuery.SelectSingleNode("@Last_Name", this.NamespaceManager).SetValue(strLastName);
    xnSuppliersQuery.SelectSingleNode("@First_Name", this.NamespaceManager).SetValue(strFirstName);
    xnSuppliersQuery.SelectSingleNode("@Job_Title", this.NamespaceManager).SetValue(strJobTitle);
    xnSuppliersQuery.SelectSingleNode("@Business_Phone", this.NamespaceManager).SetValue(strBusPhone);
     
    //Restore the default table command (for the next time).
    cn.Command = strOrigSQLCommand;
     
    //Clean up
    xnMain = null;
    cn = null;
    xnSuppliersQuery = null;
  5. Vytvořte projekt klepnutím Sestavenípoložka nabídky a potom klepnutím na položku Sestavenínázev projektu.
  6. Uložte změny a vraťte se do aplikace InfoPath.

Testovací kód

Ukázkový kód, který je k dispozici v předchozím postupu umožňuje vyhledávání zástupných znakůNázev úlohy v Dodavatelé Tabulka. Poskytnutím vyhledávací dotaz Prodeje %, všechny záznamy, které jsou vráceny budou mít kontakty na místě prodeje. Tyto kontakty mohou být zástupce, vedoucí nebo agent tak dlouho, dokud jejich záznam splňuje kritéria hledáníProdeje %. Kontakty, které nemají v "Prodej" Název úlohy pole jsou odfiltrovány.


Ověřte, zda všechny záznamy, které jsou vraceny kontakty na místě prodeje, postupujte takto:
  1. Aplikace InfoPath do roku 2010:VDomovská stránkakarta na pásu karet, klepněte na tlačítkoNáhled.
    Aplikace InfoPath 2007:Na panelu nástrojů klepněte na tlačítko Náhleda klepněte na tlačítkoFormulář.
  2. V Název úlohy pole dotazu, typ Prodeje %.
  3. Klepněte na tlačítko Spuštění dotazu.

Všechny kontakty v poloze prodeje jsou záznamy vrácené vlastní dotaz.

Vlastnosti

ID článku: 826992 - Poslední aktualizace: 20. května 2011 - Revize: 3.0
Informace v tomto článku jsou určeny pro produkt:
Klíčová slova: 
kbhowto kbmt KB826992 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:826992

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com