錯誤 #: 的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
-
開啟北風範例資料庫。
-
按一下 [插入] 功能表上的 [查詢]。
-
在 [新增查詢] 對話方塊中,選取 [設計檢視],然後按一下[確定]。
-
按一下 [檢視] 功能表上的 [ SQL 檢視]。
-
在 [查詢] 視窗中,貼上下列查詢:
SELECT Customers.CustomerIDFROM Customers;
附註您所見,也會移除查詢的準則。因此,查詢不包含任何萬用字元的字元。
-
按一下 [檔案] 功能表的 [儲存]。
-
在 [另存新檔] 對話方塊的 [查詢名稱] 方塊中,輸入Query1,,然後按一下[確定]。
-
按一下 [檢視] 功能表的 [資料工作表檢視]。
-
在 [記錄] 功能表上指向 [篩選器] 中,,然後按一下 [進階篩選/排序。
-
在 [欄位] 清單中,選取 [客戶編號]。
-
在 [在 [客戶編號] 下的 [條件] 方塊中,貼上下列程式碼:
Like "A*"
-
在 [篩選] 功能表上按一下 [套用篩選/排序]。
-
按一下 [檔案] 功能表的 [儲存]。
-
在 [檔案] 功能表上,按一下 [關閉檔案]。
-
在 [資料庫] 視窗中,按一下 [查詢]。
-
Query1,以滑鼠右鍵按一下,然後按一下 [匯出。
-
在匯出查詢 'Query1' 來對話方塊中,在 [存檔類型] 清單中,選取 [ XML ,然後按一下 [匯出。
-
在 [匯出 XML ] 對話方塊中,按一下 [其他選項。
-
在 [匯出 XML ] 對話方塊中,選取 [資料] 索引標籤。在匯出記錄,請按一下以選取 [套用現有的篩選器] 核取方塊,然後按一下[確定]。
Access 2007
-
開啟北風範例資料庫。
-
在 [建立] 索引標籤上按一下 [查詢設計,,,然後按一下 [關閉。
-
在 [設計] 索引標籤上按一下SQL 檢視群組中的結果。
-
在 [查詢] 視窗中,貼上下列查詢:
SELECT Customers.[First Name]FROM Customers;
附註您所見,也會移除查詢的準則。因此,查詢不包含任何萬用字元的字元。
-
按一下 [ Microsoft Office] 按鈕,然後按一下 [儲存。
-
在 [另存新檔] 對話方塊的 [查詢名稱] 方塊中,輸入Query1,,然後按一下[確定]。
-
在首頁] 索引標籤檢視] 群組中,按一下 [檢視],然後按一下 [資料工作表檢視。
-
在 [首頁] 索引標籤,請按一下 [進階],請在 [排序及篩選器的群組中,,然後按一下 [進階篩選/排序。
-
在 [欄位] 清單中,選取第一個名稱
-
在 [在 [名字] 下的 [條件] 方塊中,貼上下列程式碼:
Like "A*"
-
在 [首頁] 索引標籤,請按一下 [進階],請在 [排序及篩選器的群組中,,然後按一下 [套用篩選/排序。
-
按一下 [ Microsoft Office] 按鈕,然後按一下 [儲存。
-
Query1上按一下滑鼠右鍵,指向 [匯出、 按一下 [ XML 檔案],然後按一下[確定]。
-
在 [匯出 XML ] 對話方塊中,按一下 [其他選項。
-
在 [匯出 XML ] 對話方塊中,按一下 [資料] 索引標籤。
-
在匯出記錄,請選取套用現有的篩選器] 選項,然後按一下[確定]。
-
在匯出的 XML 檔案] 對話方塊中,按一下 [關閉]。
狀態
Microsoft 已確認這是本文開頭所列的 Microsoft 產品中的錯誤。
其他相關資訊
如果要重現問題,在 Access 2003 中的步驟
-
開啟北風範例資料庫。
-
按一下 [插入] 功能表上的 [查詢]。
-
在 [新增查詢] 對話方塊中,選取 [設計檢視,然後按一下[確定]。
-
按一下 [檢視] 功能表上的 [ SQL 檢視]。
-
在 [查詢] 視窗中,貼上下列查詢:
SELECT Customers.CustomerIDFROM CustomersWHERE (((Customers.CustomerID) Like "A*"));
-
按一下 [檔案] 功能表上的 [儲存]。
-
在 [另存新檔] 對話方塊中 [查詢名稱] 方塊中,輸入Query1。
-
按一下 [檔案] 功能表中的 [關閉]。
-
Query1上按一下滑鼠右鍵,然後按一下 [匯出。
-
在匯出查詢 'Query1' 以... ] 對話方塊中,選取 [存檔類型] 清單中的 [ XML ,然後按一下 [匯出。
-
在 [匯出 XML ] 對話方塊中,按一下[確定]儲存 XML 相關的檔案在預設的位置。
-
在 Microsoft Internet Explorer,開啟 [匯出的 XML 檔案。您可以看到匯出以指定的查詢為基礎的 XML 檔案不包含任何記錄。
參考
如需有關 ANSI 92 語法的詳細資訊,請在 [ Office 小幫手]中輸入關於 ansi sql 查詢模式,,然後按一下 [搜尋。