ACC2002: 「 SQL 轉換精靈 」 並不轉換巢狀查詢如果基底查詢轉換為函式

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

295235
本文已封存。本文係以「現狀」提供且不會再更新。
中級使用者: 需要基本巨集]、 [程式碼撰寫,] 以及 [交互操作性技巧。

本文可套用於 [Microsoft Access 資料庫 (.mdb) 和 Microsoft Access 專案 (.adp)。

徵狀
兩種下列情況皆成立時,Microsoft Access SQL 轉換精靈將會不轉換巢狀的查詢:
  • 查詢將包含其 SQL 陳述式中包含 ORDER BY 子句的較低層級查詢。

    -以及-

  • 較低層級查詢涉及在一個以上的聯結。
發生的原因
「 SQL 轉換精靈 」 會將與 ORDER BY 子句的查詢轉換為函式。因此,較低層級查詢會轉換成函式。當函式涉及多個聯結查詢中時,「 SQL 轉換精靈 」 將會在查詢時執行尚未轉換。
解決方案
如果要解決這個問題而定,使用 [下列的其中一個方法]。

方法 1

複製並貼上從巢狀查詢的 SQL 陳述式中加入新查詢中轉換 Microsoft Access 專案中您 Microsoft Access 資料庫。如果要執行這項操作,請依照下列步驟執行:
  1. 開啟包含巢狀的查詢的資料庫。
  2. 在 [設計] 檢視中開啟巢狀的查詢。
  3. 按一下 [檢視] 功能表 SQL 檢視
  4. 選取整個 SQL 陳述式,讓您可以複製它。
  5. 編輯] 功能表上按一下 [複製]。
  6. 請關閉查詢。不要儲存所做的變更。
  7. 開啟轉換後的 Microsoft Access 專案。
  8. 在 [資料庫] 視窗中按一下 [物件,] 下的 [查詢],然後再連按兩下 設計工具中的建立檢視
  9. 在 [顯示資料表] 對話方塊中,按一下 [關閉]。
  10. 按一下 [檢視設計] 工具列以開啟 [SQL] 視窗在螢幕底部的 SQL
  11. 在 [SQL] 視窗中選取"SELECT FROM 」 文字,讓您可以貼到文字上方。
  12. 編輯] 功能表上按一下 [貼上]。必要時,編輯查詢,以便符合適當的 T-SQL 語法。
  13. 儲存檢視,並給它相同的名稱做為查詢名稱,在 Access 資料庫 (.mdb) 檔案。
  14. 執行查詢。
  15. 回到 [設計] 檢視。
  16. 排序類型] 欄中選取 [排序順序為您想要排序的欄位]。
  17. 重新執行查詢。
  18. 關閉並儲存查詢。

方法 2

之前轉換您的資料庫中的 [使用設計檢視新開啟較低層級查詢移除的排序順序,並再重新插入排序順序在轉換查詢。
狀況說明
Microsoft 已確認這是在本文開頭所列之 Microsoft 產品中的問題。
其他相關資訊

重製行為的步驟

警告: 如果您依照本範例,修改範例資料庫 Northwind.mdb。您可能要備份 Northwind.mdb 檔案和資料庫的副本上依照下列步驟執行。

  1. 開啟範例資料庫 Northwind.mdb。
  2. 在 [設計] 檢視中建立新的查詢。
  3. 在 [顯示資料表] 對話方塊中,按一下 [關閉]。
  4. 按一下 [檢視] 功能表 SQL 檢視
  5. 輸入或貼 SQL 視窗中的下列文字:
       SELECT Employees.LastName,         Orders.OrderDate,         Orders.ShipCountry,         [Order Details Extended].ExtendedPrice,         Products.ProductName,         Categories.CategoryName   FROM Employees       INNER JOIN (Categories         INNER JOIN ((Orders            INNER JOIN [Order Details Extended]      ON Orders.OrderID = [Order Details Extended].OrderID)         INNER JOIN Products           ON [Order Details Extended].ProductID = Products.ProductID)             ON Categories.CategoryID = Products.CategoryID)               ON Employees.EmployeeID = Orders.EmployeeID;					
  6. 將查詢儲存為 qryNested,然後再關閉它。
  7. 轉換資料庫。
  8. 「 SQL 轉換精靈 」 完成後請注意 qryNested 查詢不是新的 Microsoft Access 專案中的轉換。
pra 巢狀結構的轉換查詢依排序順序

警告:本文已自動翻譯

內容

文章識別碼:295235 - 最後檢閱時間:10/23/2013 18:04:40 - 修訂: 3.0

  • Microsoft Access 2002 Standard Edition
  • kbnosurvey kbarchive kbmt kbbug KB295235 KbMtzh
意見反應