Dotazy aplikace Access se zástupným znakem neexportují data do dokumentu XML

BUG #: 8808 (Údržba obsahu)Chyba #: 232596 (OfficeNet) Tento článek se týká pouze databáze aplikace Microsoft Access (MDB).Střední: vyžaduje základní znalosti maker, kódování a interoperability.

Příznaky

Pokud exportujete dotaz aplikace Access do dokumentu XML a dotaz obsahuje zástupný znak Microsoft Jet, například hvězdičku (*), nebudou data exportována do dokumentu XML. Výsledný dokument XML proto neobsahuje žádná data. Pokud spustíte stejný dotaz pomocí aplikace Access, bude dotaz fungovat správně.

Příčina

K tomuto chování dochází při exportu do formátu XML. Jazyk XML používá k dotazování dat z databáze objekty ADO (ActiveX Data Objects). Pokud v dotazu aplikace Access použijete zástupný znak specifický pro databázový stroj Jet, dotaz nevrátí žádné záznamy. K tomuto problému dochází proto, že objekty ADO rozpoznají pouze zástupné znaky 92 americké národní standardy institutu (ANSI).

Alternativní řešení

Chcete-li tento problém obejít, použijte jednu z následujících metod.

Metoda č. 1

Dotaz můžete přepsat tak, aby se zástupný znak specifický pro databázový stroj Jet nahradil zástupným znakem ANSI 92. Původní dotaz může například vypadat podobně jako u zástupného znaku *:

SELECT Customers.CustomerIDFROM CustomersWHERE (((Customers.CustomerID)  Like "A*"));

Dotaz můžete přepsat následujícím způsobem:

SELECT Customers.CustomerIDFROM CustomersWHERE (((Customers.CustomerID)  Like "A%"));

Poznámka: Není-li databáze aplikace Access nakonfigurována pro kompatibilitu s kódováním ANSI 92, budou při spuštění opakovaného dotazu z aplikace Access vrácena žádná data. Exportovaný dokument XML, který je založen na nově napsaných dotazech, však vrátí očekávané výsledky.

Metoda č. 2

Dotaz můžete přepsat tak, aby kritérium dotazu neobsahovalo zástupné znaky. Původní dotaz může například vypadat podobně jako u zástupného znaku *:

SELECT Customers.CustomerIDFROM CustomersWHERE (((Customers.CustomerID)  Like "A*"));

Dotaz můžete přepsat následujícím způsobem:

SELECT Customers.CustomerIDFROM CustomersWHERE Left(CustomerID,1) = "A";

Metoda č. 3

Při exportu dat do dokumentu XML můžete určit, zda se má na objekt použít existující filtr. Místo určení zástupného znaku ve kritériu dotazu můžete vytvořit filtr s řetězcem filtru odpovídajícím kritériím (například "A *") a poté použít tento filtr během procesu exportu XML. Postupujte podle následujících kroků v závislosti na verzi aplikace Access.

Přístup 2003

  1. Otevřete ukázkovou databázi Northwind.

  2. V nabídce Vložit klepněte na příkaz dotaz.

  3. V dialogovém okně Nový dotaz vyberte možnost návrhové zobrazenía klepněte na tlačítko OK.

  4. V nabídce Zobrazit klepněte na příkaz zobrazení SQL.

  5. V okně dotazu vložte následující dotaz:

    SELECT Customers.CustomerIDFROM Customers;

    Poznámka: Můžete vidět, že kritérium dotazu je odebráno. Dotaz tedy neobsahuje žádné zástupné znaky.

  6. V nabídce soubor klepněte na příkaz Uložit.

  7. V poli název dotazu v dialogovém okně Uložit jako zadejte Query1a klepněte na tlačítko OK.

  8. V nabídce Zobrazit klepněte na příkaz zobrazení datového listu.

  9. V nabídce záznamy ukažte na položku Filtra pak klepněte na příkaz Rozšířený filtr či řazení.

  10. V seznamu polí vyberte položku KódZákazníka.

  11. Do pole kritéria v položce KódZákazníkavložte následující kód:

    Like "A*"
  12. V nabídce Filtr klepněte na příkaz použít filtr či řazení.

  13. V nabídce soubor klepněte na příkaz Uložit.

  14. V nabídce soubor klepněte na příkaz Zavřít.

  15. V okně databáze klikněte na tlačítko dotazy.

  16. Klepněte pravým tlačítkem myši na Query1a potom klepněte na příkaz exportovat.

  17. V dialogovém okně exportovat dotaz ' Query1 ' na vyberte XML v seznamu typ souboru a pak klepněte na exportovat.

  18. V dialogovém okně Exportovat XML klepněte na více voleb.

  19. V dialogovém okně Export XML vyberte kartu data . V seznamu záznamy k exportuzaškrtněte políčko použít existující filtr a klepněte na tlačítko OK.

Přístup 2007

  1. Otevřete ukázkovou databázi Northwind.

  2. Na kartě vytvořit klepněte na možnost Návrh dotazua potom klepněte na tlačítko Zavřít.

  3. Na kartě Návrh klepněte ve skupině výsledků na položku zobrazení SQL .

  4. V okně dotazu vložte následující dotaz:

    SELECT Customers.[First Name]FROM Customers;

    Poznámka: Můžete vidět, že kritérium dotazu je odebráno. Dotaz tedy neobsahuje žádné zástupné znaky.

  5. Klepněte na tlačítko Microsoft Officea potom na tlačítko Uložit.

  6. V poli název dotazu v dialogovém okně Uložit jako zadejte Query1a klepněte na tlačítko OK.

  7. Na kartě Domů ve skupině zobrazení klepněte na tlačítko Zobrazita potom na položku zobrazení datového listu.

  8. Na kartě Domů klepněte na tlačítko Upřesnit v poli Seřadit & skupinu filtrů a potom klepněte na tlačítko Rozšířený filtr či řazení.

  9. V seznamu polí vyberte křestní jméno

  10. Do pole kritérií pod křestním jménemvložte následující kód:

    Like "A*"
  11. Na kartě Domů klepněte na tlačítko Upřesnit v poli Seřadit & skupinu filtrů a potom klepněte na tlačítko použít filtr či řazení.

  12. Klepněte na tlačítko Microsoft Officea potom na tlačítko Uložit.

  13. Klepněte pravým tlačítkem myši na Query1, přejděte na příkaz Export, klepněte na položku soubor XMLa pak klepněte na tlačítko OK.

  14. V dialogovém okně Exportovat XML klepněte na více voleb.

  15. V dialogovém okně Export XML klepněte na kartu data .

  16. V seznamu záznamy k exportuvyberte možnost použít existující filtr a klepněte na tlačítko OK.

  17. V dialogovém okně Export-XML soubor klepněte na Zavřít.

Stav

Společnost Microsoft potvrzuje, že se jedná o chybu v produktech této společnosti, které jsou uvedeny na začátku tohoto článku.

Další informace

Kroky pro reprodukci problému v aplikaci Access 2003

  1. Otevřete ukázkovou databázi Northwind.

  2. V nabídce Vložit klepněte na příkazdotaz.

  3. V dialogovém okně Nový dotaz vyberte možnostnávrhové zobrazení a klepněte na tlačítko OK.

  4. V nabídce Zobrazit klepněte na příkaz zobrazení SQL.

  5. V okně dotazu vložte následující dotaz:

    SELECT Customers.CustomerIDFROM CustomersWHERE (((Customers.CustomerID)  Like "A*"));
  6. V nabídce souborklepněte na příkaz Uložit .

  7. V poli název dotazu , který se nachází v dialogovém okněUložit jako , zadejteQuery1.

  8. V nabídce soubor klepněte na příkazZavřít.

  9. Klepněte pravým tlačítkem myši na Query1 a potom klepněte na příkaz exportovat.

  10. V exportním dotazu ' Query1 ' do... dialogového okna vyberte XML v seznamu typ souboru a pak klepněte na exportovat.

  11. V dialogovém okně Export XML klikněte na tlačítkoOK a uložte soubory související s jazykem XML do výchozího umístění.

  12. V aplikaci Microsoft Internet Explorer otevřete exportovaný soubor XML. Můžete vidět, že exportovaný soubor XML, který je založen na zadaném dotazu, neobsahuje žádné záznamy.

Odkazy

Další informace o syntaxi ANSI 92 získáte, napíšete-li v Pomocníkovi Officerežim ANSI dotazu SQL a klepnete na tlačítko Hledat.

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é?

Děkujeme za váš názor!

Děkujeme vám za váš názor! Pravděpodobně bude užitečné, když vás spojíme s některým z našich agentů podpory Office.

×