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

文章翻譯 文章翻譯
文章編號: 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 專案中的轉換。

屬性

文章編號: 295235 - 上次校閱: 2013年10月23日 - 版次: 3.0
這篇文章中的資訊適用於:
  • Microsoft Access 2002 Standard Edition
關鍵字:?
kbnosurvey kbarchive kbmt kbbug KB295235 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:295235
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

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