Applies ToAccess for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

查詢是一組可用於處理數據的指示。 您執行查詢以執行這些指示。 除了傳回可以排序、分組或篩選的結果之外,查詢也可以建立、複製、刪除或變更數據。

本文說明如何執行查詢,並僅提供各種查詢類型的簡要概觀。 本文也會討論當您執行不同類型的查詢時可能會遇到的錯誤訊息,並提供您可以採取的步驟來解決或修正這些錯誤。

本文不提供建立查詢的逐步指示。

重要: 如果資料庫是在停用模式中運作,您就無法執行宏指令查詢,這是 Access 在某些情況下用來協助保護數據的精簡功能模式。 您可能會看到一個對話框警告,或者您可能會在訊息列中看到警告。

如需停用模式以及如何啟用宏指令查詢的詳細資訊,請參閱 執行宏指令查詢一節。

您想要做什麼?

執行選取或交叉表查詢

您可以使用選取查詢和交叉表查詢來擷取和呈現數據,以及提供表單和報表與數據。 當您執行選取或交叉表查詢時, Access 會以 資料工作表檢視顯示結果。

執行查詢

  1. 在 [導航窗格] 中找到查詢。

  2. 執行下列其中一個動作:

    • 按兩下您要執行的查詢。

    • 按兩下您要執行的查詢,然後按 ENTER。

如果您要執行的查詢目前是在 設計檢視中開啟,您也可以按兩下功能區 [設計] 索引標籤上 [結果] 群組中的 [執行],這是 Microsoft Office Fluent 使用者介面的一部分。

頁面頂端

執行宏指令查詢

有四種類型的宏指令查詢:追加查詢、刪除查詢、更新查詢和數據表查詢。 除了建立新數據表 ( (數據表) 之外,宏指令查詢會變更它們所依據之數據表中的數據。 這些變更無法輕易復原,例如按 CTRL+Z。 如果您稍後使用動作查詢進行變更,且認為您不想進行變更,通常您必須從備份復本還原數據。 因此,執行宏指令查詢之前,您應一律確保您擁有基礎數據的全新備份。

您可以先預覽要執行的數據,以降低執行宏指令查詢的風險。 有兩種方法可以執行此操作:

  • 執行前,請先在 [數據工作表檢視] 中檢視動作查詢。 若要這麼做,請在 [設計視圖] 中開啟查詢,單擊 Access 狀態列上的 [ 檢視 ],然後按兩下快捷方式功能表上的 [ 數據工作表檢視 ]。 若要切換回 [設計視圖],請再單擊 [ 檢視 ],然後按兩下快捷方式功能表上的 [ 設計檢視 ]。

  • 將查詢變更為選取查詢,然後執行它。

    附註: 請務必記下 (新增、更新、製作數據表或刪除) 的動作查詢類型,以便在使用此方法預覽數據之後,將查詢變更回該類型。

    以選取查詢的形式執行宏指令查詢

    1. 在 [設計檢視] 中開啟動作查詢。

    2. 在 [ 設計] 索引 標籤的 [ 查詢類型] 群組中,按兩下 [ 選取]

    3. 在 [設計] 索引標籤上的 [結果] 群組中,按一下 [執行]。

執行查詢

當您準備好執行動作查詢時,請在 [導航窗格] 中按兩下該查詢,或按單擊該查詢,然後按 ENTER。

重要: 根據預設,除非您指出信任資料庫,否則 Access 會停用資料庫中的所有動作查詢。 您可以使用功能區正下方的訊息列,表示您信任資料庫。

[訊息列]

信任資料庫

  1. 在訊息列上,按一下 [選項]

    [Microsoft Office 安全性選項] 對話方塊即會顯示。

  2. 取 [啟用此內容] ,然後按兩下 [ 確定]

執行參數查詢

參數查詢 會在您執行時提示您輸入值。 當您提供值時,參數查詢會將其套用為欄位準則。 在查詢設計中指定準則所套用的欄位。 如果系統提示時未提供值,參數查詢會將您的輸入解譯為空白字串。

參數查詢永遠也是另一種類型的查詢。 大部分的參數查詢都是選取查詢或交叉表查詢,但附加、製作數據表和更新查詢也可以是參數查詢。

您會根據其其他查詢類型執行參數查詢,但一般使用下列程式。

執行查詢

  1. 在 [導航窗格] 中找到查詢。

  2. 執行下列其中一個動作:

    • 按兩下您要執行的查詢。

    • 按兩下您要執行的查詢,然後按 ENTER。

  3. 當參數提示出現時,輸入要套用為準則的值。

頁面頂端

執行 SQL 特定查詢

SQL 特定的查詢有三種主要類型:聯合查詢、傳遞查詢和數據定義查詢。

聯合查詢會合併兩個或多個數據表中的數據,但與其他查詢不同。 而大部分的查詢會串連數據列來合併數據,而聯合查詢則會透過附加數據列來合併數據。 聯合查詢與附加查詢不同,因為聯合查詢不會變更基礎表。 聯合查詢會在記錄集中附加在查詢關閉后無法保留的數據列。

Access 隨附的資料庫引擎不會處理傳遞查詢;而是直接傳送到執行處理的遠端資料庫伺服器,然後將結果傳回 Access。

數據定義查詢是一種特殊的查詢類型,不會處理數據;相反地,數據定義查詢會建立、刪除或修改其他 資料庫物件。

無法在 [設計檢視] 中開啟 SQL 特定查詢。 它們只能在 SQL 檢視中開啟或執行。 除了數據定義查詢以外,執行 SQL 特定查詢會在 [資料工作表檢視] 中開啟該查詢。

執行查詢

  1. 在 [導航窗格] 中找到查詢。

  2. 執行下列其中一個動作:

    • 按兩下您要執行的查詢。

    • 按兩下您要執行的查詢,然後按 ENTER。

頁面頂端

疑難解答錯誤訊息

下表顯示您可能會遇到的一些常見錯誤訊息。 這些錯誤可能在儲存格 (中顯示為訊息,而非預期值) ,或顯示為錯誤訊息。 清單後面的區段包含您可以用來解決這些錯誤的程式。

附註: 此表格的這個內容並不詳盡。 如果其中不包含您收到的錯誤訊息,您可以使用本文結尾的窗體提交意見反應,並在提供的批注方塊中包含錯誤訊息的相關特定資訊。

錯誤訊息

問題

解決方案

在表達式中輸入不相符

查詢可能正在聯結具有不同數據類型的欄位。

檢查查詢設計,並確保聯結的欄位具有相同的數據類型。 如需相關指示,請參 閱檢查查詢中的聯結欄位一節。

記錄已刪除

如果對象或資料庫已損毀,就可能會發生這種情況。

壓縮及修復資料庫。 如需相關指示,請參閱 壓縮及修復資料庫一節。

別名造成的循環參照

指派給欄位的別名與該欄位表達式的元件相同。

別名是指定給查詢設計網格線 [ 字段 ] 列中任何表達式的名稱,而非實際欄位。 如果您不自行指派別名,Access 會為您指派別名;例如 ,EXPR1。 別名後面緊接著冒號 () ,然後接著表達式。 當您執行查詢時,別名會變成數據工作表中的欄名。

變更別名。 如需相關指示,請參閱 變更欄位別名一節。

#Error

如果匯出欄位的值大於欄位的 FieldSize 屬性設定允許的值,就會發生這個錯誤。 這也發生在計算欄位的分母為零或計算為零時 (0) 。

確定計算欄位的分母不會評估為零 (0) 。 如果適用,請變更 FieldSize 屬性。

#Deleted

已刪除參照的記錄。

如果意外刪除記錄,則必須從備份還原記錄。 如果刪除是刻意的,您可以按 SHIFT+F9 重新整理查詢來關閉此錯誤訊息。

檢查查詢中的聯結欄位

若要檢查查詢中欄位的數據類型,請在 [設計檢視] 中查看源數據表,並檢查所檢查字段的屬性。

  1. 在 [設計檢視] 中開啟查詢。 連接會顯示為連接源數據表中欄位的線條。 請注意每個聯結的數據表和功能變數名稱。

  2. 在 [導航窗格] 中,以滑鼠右鍵按兩下在查詢中加入一或多個字段的每一個數據表,然後按兩下 [ 設計檢視]

    具有不同資料類型的連接欄位

    1. 具有不同數據類型的連線欄位。

    2. 以滑鼠右鍵按兩下資料表,然後按兩下 [設計檢視]。

  3. 針對每個聯結,比較數據表設計網格線之 [數據類型 ] 數據行中與該聯結相關欄位的值。

    在資料表 [設計檢視] 中檢查連接欄位的資料類型

    1. 在資料表的 [設計檢視] 中檢查聯結欄位的數據類型。

  4. 若要切換到數據表以查看其欄位,請按兩下含有該資料表名稱的索引標籤。

頁面頂端

壓縮及修復資料庫

在 Access 中執行壓縮及修復資料庫公用程式可以改善資料庫的效能。 這個公用程式會複製資料庫檔案,如果是分散的,則會重新排列資料庫檔案儲存在磁碟上的方式。 壓縮及修復程式完成之後,壓縮后的資料庫就會回收浪費的空間,而且通常會比原始資料庫小。 透過經常壓縮資料庫,您可以協助確保資料庫應用程式的優化效能,也可以解決硬體問題、電源故障或突動,以及類似原因所造成的錯誤。

壓縮作業完成後,查詢速度會提升,因為基礎數據已重寫至連續頁面中的數據表。 掃描連續的頁面比掃描分散的頁面快得多。 每個資料庫壓縮之後,查詢也會優化。

在壓縮作業期間,您可以使用壓縮資料庫檔案的原始名稱,或使用不同的名稱來建立個別的檔案。 如果您使用相同的名稱,且資料庫已成功壓縮,Access 會自動以壓縮版本取代源檔。

設定將此程式自動化的選項

  1. 按一下 [檔案] > [選項] 以開啟 [Access 選項] 對話方塊。

  2. 按兩下 [目前資料庫 ],然後選取 [ 應用程式選項] 底下的 [ 關閉時壓縮 ] 複選框。

    這會讓 Access 在每次關閉資料庫時自動壓縮及修復資料庫。

手動壓縮及修復資料庫

  1. 按兩下 [資料庫工具 > 壓縮及修復資料庫]

頁面頂端

變更欄位別名

  1. 在 [設計檢視] 中開啟查詢。

  2. 在查詢設計網格線中,尋找有別名的欄位。 這些域名結尾會有冒號,如 Name

  3. 檢查每個別名,以確保別名與別名表達式中任何字段的名稱不相符。 如果有,請變更別名。

頁面頂端

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。