Access 查詢以萬用字元不要將資料匯出為 XML 文件

錯誤 #: 的8808 (內容維護)錯誤 #: 232596 (OfficeNet)本文僅適用於 Microsoft Access 資料庫 (.mdb)。中級使用者: 需要基本巨集、 編碼和交互操作性技巧。

徵狀

當您將 Access 查詢匯出至 XML 文件,並查詢中包含 Microsoft Jet 萬用字元,例如星號 (*) 的條件時,並不會將資料匯出至 XML 文件。因此,結果的 XML 文件不包含任何資料。如果您使用存取執行相同的查詢,查詢的運作正常。

原因

當您匯出至 XML 時,就會發生這個問題。XML 會使用 ActiveX Data Objects (ADO),查詢資料庫中的資料。當您使用 Jet 特定萬用字元存取查詢中時,查詢會傳回任何記錄。之所以發生這個問題,是因為 ADO 辨識只美國國家標準局 (ANSI) 92 萬用字元的字元。

因應措施

若要解決這個問題,請使用下列方法之一。

方法 1

您可以重寫查詢以 ANSI 92 萬用字元取代 Jet 特定萬用字元。例如,原始的查詢可能看起來像這樣使用 * 萬用字元:

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

您可以以下列方式重寫查詢:

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

附註如果 Access 資料庫未設定為 ANSI 92 相容性,當您從 Access 執行重新寫入的查詢時,會不傳回任何資料。但是,匯出的 XML 文件為基礎的重新寫入的查詢會傳回預期的結果。

方法 2

您可以重寫查詢,以便在查詢的準則不包含萬用字元。例如,原始的查詢可能看起來像這樣使用 * 萬用字元:

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

您可以以下列方式重寫查詢:

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

方法 3

當您匯出資料至 XML 文件時,您可以指定是否要在物件上套用現有的篩選。而不是指定的查詢準則中的萬用字元,您可以建立篩選條件字串相當於您想要 (例如"A *) 」 的準則的篩選器,然後再套用 [匯出 XML 程序期間的 [此篩選器。要執行這項操作,請依照下列這些步驟中,視存取的版本而定。

Access 2003

  1. 開啟北風範例資料庫。

  2. 按一下 [插入] 功能表上的 [查詢]。

  3. 在 [新增查詢] 對話方塊中,選取 [設計檢視],然後按一下[確定]

  4. 按一下 [檢視] 功能表上的 [ SQL 檢視]。

  5. 在 [查詢] 視窗中,貼上下列查詢:

    SELECT Customers.CustomerIDFROM Customers;

    附註您所見,也會移除查詢的準則。因此,查詢不包含任何萬用字元的字元。

  6. 按一下 [檔案] 功能表的 [儲存]。

  7. 在 [另新檔] 對話方塊的 [查詢名稱] 方塊中,輸入Query1,,然後按一下[確定]

  8. 按一下 [檢視] 功能表的 [資料工作表檢視]。

  9. 在 [記錄] 功能表上指向 [篩選器] 中,,然後按一下 [進階篩選/排序

  10. 在 [欄位] 清單中,選取 [客戶編號]。

  11. 在 [在 [客戶編號] 下的 [條件] 方塊中,貼上下列程式碼:

    Like "A*"
  12. 在 [篩選] 功能表上按一下 [套用篩選/排序]。

  13. 按一下 [檔案] 功能表的 [儲存]。

  14. [檔案] 功能表上,按一下 [關閉檔案]

  15. 在 [資料庫] 視窗中,按一下 [查詢]。

  16. Query1,以滑鼠右鍵按一下,然後按一下 [匯出

  17. 匯出查詢 'Query1' 來對話方塊中,在 [存檔類型] 清單中,選取 [ XML ,然後按一下 [匯出

  18. 在 [匯出 XML ] 對話方塊中,按一下 [其他選項

  19. 在 [匯出 XML ] 對話方塊中,選取 [資料] 索引標籤。在匯出記錄,請按一下以選取 [套用現有的篩選器] 核取方塊,然後按一下[確定]

Access 2007

  1. 開啟北風範例資料庫。

  2. 在 [建立] 索引標籤上按一下 [查詢設計,,,然後按一下 [關閉

  3. 在 [設計] 索引標籤上按一下SQL 檢視群組中的結果

  4. 在 [查詢] 視窗中,貼上下列查詢:

    SELECT Customers.[First Name]FROM Customers;

    附註您所見,也會移除查詢的準則。因此,查詢不包含任何萬用字元的字元。

  5. 按一下 [ Microsoft Office] 按鈕,然後按一下 [儲存

  6. 在 [另新檔] 對話方塊的 [查詢名稱] 方塊中,輸入Query1,,然後按一下[確定]

  7. 首頁] 索引標籤檢視] 群組中,按一下 [檢視],然後按一下 [資料工作表檢視

  8. 在 [首頁] 索引標籤,請按一下 [進階],請在 [排序及篩選器的群組中,,然後按一下 [進階篩選/排序

  9. 在 [欄位] 清單中,選取第一個名稱

  10. 在 [在 [名字] 下的 [條件] 方塊中,貼上下列程式碼:

    Like "A*"
  11. 在 [首頁] 索引標籤,請按一下 [進階],請在 [排序及篩選器的群組中,,然後按一下 [套用篩選/排序

  12. 按一下 [ Microsoft Office] 按鈕,然後按一下 [儲存

  13. Query1上按一下滑鼠右鍵,指向 [匯出、 按一下 [ XML 檔案],然後按一下[確定]

  14. 在 [匯出 XML ] 對話方塊中,按一下 [其他選項

  15. 在 [匯出 XML ] 對話方塊中,按一下 [資料] 索引標籤。

  16. 匯出記錄,請選取套用現有的篩選器] 選項,然後按一下[確定]

  17. 匯出的 XML 檔案] 對話方塊中,按一下 [關閉]。

狀態

Microsoft 已確認這是本文開頭所列的 Microsoft 產品中的錯誤。

其他相關資訊

如果要重現問題,在 Access 2003 中的步驟

  1. 開啟北風範例資料庫。

  2. 按一下 [插入] 功能表上的 [查詢]。

  3. 在 [新增查詢] 對話方塊中,選取 [設計檢視,然後按一下[確定]

  4. 按一下 [檢視] 功能表上的 [ SQL 檢視]。

  5. 在 [查詢] 視窗中,貼上下列查詢:

    SELECT Customers.CustomerIDFROM CustomersWHERE (((Customers.CustomerID)  Like "A*"));
  6. 按一下 [檔案] 功能表上的 [儲存]。

  7. 在 [另新檔] 對話方塊中 [查詢名稱] 方塊中,輸入Query1。

  8. 按一下 [檔案] 功能表中的 [關閉]

  9. Query1上按一下滑鼠右鍵,然後按一下 [匯出

  10. 匯出查詢 'Query1' 以... ] 對話方塊中,選取 [存檔類型] 清單中的 [ XML ,然後按一下 [匯出

  11. 在 [匯出 XML ] 對話方塊中,按一下[確定]儲存 XML 相關的檔案在預設的位置。

  12. 在 Microsoft Internet Explorer,開啟 [匯出的 XML 檔案。您可以看到匯出以指定的查詢為基礎的 XML 檔案不包含任何記錄。

參考

如需有關 ANSI 92 語法的詳細資訊,請在 [ Office 小幫手]中輸入關於 ansi sql 查詢模式,,然後按一下 [搜尋

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

Thank you for your feedback!

Thank you for your feedback! It sounds like it might be helpful to connect you to one of our Office support agents.

×