使用查詢能讓你更容易查看、新增、刪除或更改 Access 資料庫中的資料。 使用查詢的其他原因包括:
透過篩選特定條件 (條件快速找到具體數據)
計算或彙整資料
自動化資料管理任務,例如定期檢視最新資料。
查詢幫助你找到並處理你的資料
在設計完善的資料庫中,您想要透過表單或報表顯示的資料通常位於多個資料表中。 查詢可以從各種資料表擷取資訊,並組合起來以呈現在表單或報告中。 查詢可以是請求資料庫中的資料結果,或是對資料採取行動,或兩者兼具。 查詢可以給你簡單問題的答案、執行計算、合併不同資料表的資料、新增、變更或刪除資料庫中的資料。 由於查詢非常多元,查詢類型繁多,你會根據任務建立一種查詢類型。
| 主要查詢類型 | 使用 |
|---|---|
| 請選取 | 用於擷取資料表中的資料或執行計算。 |
| 動作 | 新增、變更或刪除資料。 每個工作都有特定類型的動作查詢。 |
建立選取查詢
如果你只想檢視表格中某些欄位的資料,或同時查看多個資料表的資料,或是根據特定條件查看資料,選擇查詢類型會是你的選擇。 欲了解更多資訊,請參閱 建立一個簡單的選擇查詢。
審查來自特定領域的資料
舉例來說,如果你的資料庫有一個包含大量產品資訊的表格,你想查看產品清單及其價格,以下是如何建立一個選擇查詢,只回傳產品名稱和相應價格:
- 打開資料庫,在 「建立 」標籤中點選 「查詢設計」。
- 在 表格 標籤中,雙擊「 產品 」表格。
- 在產品表中,假設你有產品名稱和清單價格欄位。 雙擊 產品名稱 與 掛牌價格 ,即可將這些欄位加入查詢設計網格。
- 在 查詢設計 標籤中,點擊 執行。 查詢會執行,並顯示產品清單及其價格。
同時檢視多個相關表格的資料
舉例來說,如果你有一個銷售食品的商店資料庫,想查看居住在特定城市的顧客訂單。 假設訂單資料和客戶資料分別儲存在兩個資料表中,分別稱為 Customers 和 Orders。 如果每個資料表都有一個客戶識別欄位,這構成了兩個資料表之間一對多關係的基礎。 你可以透過以下程序為特定城市(例如拉斯維加斯)的客戶建立查詢,回傳訂單:
- 開啟資料庫。 在 [建立] 索引標籤上,按一下 [查詢] 群組中的 [查詢設計]。
- 在 「餐桌」 分頁,雙擊「 顧客 與 訂單」。
請注意 (一行稱為 join) ,連接 Customers 資料表中的 ID 欄位與訂單資料表中的 Customer ID 欄位。 這條線顯示了兩個表格之間的關係。 - 在客戶表格中,雙擊 「公司 」和 「城市 」,將這些欄位加入查詢設計網格。
- 在查詢設計網格中, 城市欄位中 ,請清除 顯示 列的勾選框。
- 在城市欄位的標準列輸入拉斯維加斯。
清除「顯示」勾選框會阻止查詢在結果中顯示該城市,而在條件列輸入「拉斯維加斯」則表示你只想看到該城市欄位值為拉斯維加斯的紀錄。 此時查詢僅回傳位於拉斯維加斯的客戶。 你不需要顯示欄位才能用標準來使用。 - 在訂單表中,雙擊訂單 ID 和 訂單日期 ,將這些欄位加入查詢設計網格的接下來兩欄。
- 在 查詢設計 標籤的 結果 群組中,點選 執行。 查詢執行後,會顯示拉斯維加斯客戶的訂單清單。
- 按下 CTRL+S 儲存查詢。
建立參數查詢
如果你經常想執行某個查詢的變體,可以考慮使用參數查詢。 當你執行參數查詢時,查詢會提示你輸入欄位值,然後用你提供的值來建立查詢的條件。
延續你之前的範例,你學會建立一個能回傳位於拉斯維加斯客戶訂單的 select 查詢,你可以修改 select 查詢,每次執行查詢時都會提示你指定城市。 要跟上,請打開你在前一個範例中建立的資料庫:
在導航窗格中,右鍵點擊你在前) 一節建立的「 城市訂單 (」查詢,然後點擊快捷選單中的 「設計檢視 」。
在查詢設計網格中,城市欄的條件列刪除拉斯維加斯,然後輸入 [For what city?]。
字串 [For what city?] 是你的參數提示。 方括號表示你希望查詢輸入,文字 (,這裡是「 For What City?」) 參數提示所顯示的問題。注意
(.) 不包含句號或驚嘆號 (!) 可作為參數提示中的文字使用。
在城市欄位的 「顯示 」列勾選方塊,讓查詢結果顯示城市。
在 查詢設計 標籤的 結果 群組中,點選 執行。 查詢會提示你輸入城市的數值。
輸入 New York,然後按下 ENTER 即可查看紐約客戶的訂單。
如果你不知道可以指定哪些數值怎麼辦? 你可以在提示中使用萬用字元:在 [常用] 索引標籤的 [檢視] 群組中,按一下 [檢視],然後按一下 [設計檢視]。
在查詢設計網格中,城市欄的條件列輸入 Like [For for what city?]&“*”。
在此參數提示詞中, Like 關鍵字、 (&) ,以及) 以引號包圍的星號 (* ,讓使用者能輸入多種字元組合,包括萬用字元,以返回多種結果。 例如,如果使用者輸入 *,查詢會回傳所有城市;如果使用者輸入 L,則回傳所有以字母「L」開頭的城市;如果使用者輸入 *s*,則回傳包含字母「s」的所有城市。在 查詢設計 標籤的 結果 群組中,點選 執行,並在查詢提示時輸入 「新」,然後按下 ENTER。
查詢會執行,然後顯示紐約客戶的訂單。
指定參數資料類型
您也可以指定參數應該接受哪些類型的資料。 您可以設定任何參數的資料類型,但務必要設定數值、貨幣或日期/時間資料的資料類型。 當您指定參數應接受的資料類型時,使用者就可在輸入錯誤的資料類型時,看見比較有用的錯誤訊息,例如,必須輸入貨幣資料而不是文字。
如果將參數設定為接受文字資料,則任何輸入項目都會解譯成文字,且不會顯示任何錯誤訊息。
要指定查詢中參數的資料型態,請使用以下程序:
- 在設計檢視中開啟查詢時,在 查詢設計 標籤的 「顯示/隱藏 」群組中,點擊 參數。
- 在 [查詢參數] 對話方塊的 [參數] 資料行中,為您想要指定資料類型的每一個參數鍵入提示。 請務必確認每個參數都符合您在查詢設計格線的 [準則] 資料列中使用的提示。
- 在 [資料類型] 資料行中,選取每個參數的資料類型。
更多資訊請參閱 使用參數在執行查詢時請求輸入。
建立總數查詢
資料表中的 Total 列非常有用,但對於較複雜的問題,則使用 totals 查詢。 總數查詢是一種選擇性查詢,允許你將資料分組和彙整,例如你想查看每個產品的總銷售額。 在總數查詢中,你可以使用總和函數 (彙總函數) ,來查看每件產品的總銷售額。
請使用以下程序修改你在前述範例中建立的產品子計查詢,使其依產品彙總產品子計。
- 在 「主頁 」標籤中,點選 「檢視設計>檢視」。
產品小計查詢會在設計檢視中開啟。 - 在查詢設計標籤的顯示/隱藏群組中,點選「總計」。
總計列會顯示在查詢設計網格中。
注意
雖然名稱相似,但設計網格中的 總計 列與資料表中的 總計 列並不相同:
- 你可以用設計網格中的 Totals 列來依欄位值分組。
- 你可以在總數查詢結果中加入資料表「 總數 」列。
- 當你在設計網格中使用 總計 列時,必須為每個欄位選擇一個彙總函數。 如果你不想對某個場進行計算,可以依該場分組。
- 在設計格子的第二欄,總 計 列中,從下拉選單中選擇 「總和 」。
- 在 查詢設計 標籤的 結果 群組中,點選 執行。 查詢執行後,會顯示一份帶有子計的產品清單。
- 按下 CTRL+S 儲存查詢。 保持查詢開放。
欲了解更多資訊,請參閱 「使用總計資料列顯示資料表中的欄位總數」。
根據你的數據進行計算
即使表格是基於同一資料庫的資料,通常不會用表格來儲存計算值,例如子總,因為計算出來的值如果基礎值改變,可能會過時。 例如,你不會將某人的年齡存於表格中,因為每年都必須更新該值;相反地,你先儲存該人的出生日期,然後用查詢工具計算其年齡。
例如,如果你有一個想銷售產品的資料庫。 這個資料庫有一個名為「訂單詳情」的表格,裡面有產品資訊,欄位包括各產品價格和數量。 你可以用查詢計算子總,先將每個產品的數量乘以該產品的單位價格,再將每個產品的數量乘以該產品的單位價格和折扣,然後再從總單位價中減去總折扣。 如果你在前一個範例中建立了範例資料庫,打開它並照著做:
- 在 [建立] 索引標籤上,按一下 [查詢設計]。
- 在 「表格」 分頁,雙擊 「訂單詳情」。
- 在訂單詳情表中,雙擊 產品識別 碼,將此欄位加入查詢設計網格的第一欄。
- 在格子的第二欄,右鍵點擊 欄位 列,然後在快捷鍵選單中點 選縮放 。
- 在 Zoom 欄位輸入或貼上以下內容: 小計: ( 數量]*[單價]) - ([數量]*[單價]*[折扣])
- 按一下 [確定]。
- 在 查詢設計 標籤中,點擊 執行。 查詢會執行後,顯示每筆訂單的產品與小計清單。
- 按 CTRL+S 儲存查詢,然後將查詢命名 為「產品子計」。
欲了解更多資訊,請參閱 「使用總計資料列顯示資料表中的欄位總數」。
顯示彙總或彙整資料
當你使用表格記錄交易或儲存經常發生的數值資料時,能夠以彙總方式檢視這些資料(如求和或平均值)是很有用的。 在 Access 裡,你可以在資料表上新增一個 Totals 列。 總列是資料表底部的一列,可顯示持續的總數或其他總值。
- 執行你之前建立的產品小計查詢,並將結果留在資料表檢視中。
- 按一下 [常用] 索引標籤上的 [合計]。 資料表底部會出現一列新資料,第一欄有 「Total 」一詞。
- 點擊資料表最後一行名為 Total 的格子。
- 點擊箭頭可查看可用的彙總函數。 由於欄位包含文字資料,只有兩個選項: 無 和 計數。
- 選擇 計數。 儲存格內容會從 「總計 數」變成「欄位數值的計數」。
- 點擊第二欄 (相鄰的儲存格) 。 請注意,該格子裡會出現一個箭頭。
- 點選箭頭,然後點 「總和」。 欄位顯示欄位值的總和。
- 請將查詢視窗留在資料表檢視中開啟。
建立交叉資料表查詢
現在假設你想檢視產品小計,但同時想按月份彙總,讓每一列顯示一個產品的子計,每欄顯示一個月份的產品小計。 要顯示產品的子計以及一個月的產品子計,請使用交叉表查詢。
你可以再次修改產品小計查詢,使查詢回傳產品子計的列和每月小計的欄位。
- 在 [常用] 索引標籤的 [檢視] 群組中,按一下 [檢視],然後按一下 [設計檢視]。
- 在 查詢設定 群組中,點選 新增資料表。
- 雙擊 訂單,然後點擊 成交。
- 在 查詢設計 標籤的查詢 類型 群組中,點擊 交叉標籤。 在設計格子中, 顯示 列是隱藏的,而 交叉表 列則是顯示的。
- 在設計格子的第三欄,右鍵點擊 欄位 列,然後在快捷鍵選單中點 選縮放 。 Zoom 盒子打開了。
- 在 Zoom 欄位輸入或貼上以下內容: 月份:「月份」& 日期部分 (「m」、[訂單日期])
- 按一下 [確定]。
- 在 交叉表格 列中,從下拉選單中選擇以下值:第一欄 為列標題 ,第二欄為 Value ,第三欄為 欄標題 。
- 在 查詢設計 標籤的 結果 群組中,點選 執行。 查詢會執行,然後依月份彙總產品小計。
- 按下 CTRL+S 儲存查詢。
欲了解更多關於交叉表查詢的資訊,請參閱 「使用交叉表查詢讓摘要資料更易閱讀」。
建立產生資料表查詢
你可以用 make-table 查詢,從其他資料表裡的資料建立一個新資料表。
舉例來說,假設你想將芝加哥訂單的資料傳送給一位使用 Access 準備報告的芝加哥商業夥伴。 你不想把所有訂單資料都傳送,而是限制你傳送的資料只提供芝加哥訂單的資料。
你可以建立一個包含芝加哥訂單資料的 select 查詢,然後利用 select 查詢透過以下程序建立新的表格:
打開前一個範例的資料庫。
要執行 make-table 查詢,可能需要啟用資料庫內容。注意
如果您在功能區下方看到有關啟用資料庫的訊息,請點擊**啟用內容。**如果您的資料庫已在受信任地點,您將不會看到訊息列。
在 [建立] 索引標籤上,按一下 [查詢] 群組中的 [查詢設計]。
雙擊「訂單詳情」與「訂單」。
在 訂單 表格中,雙擊 客戶識別碼 和 船舶城市 ,將這些欄位加入設計網格。
在 訂單詳情 表中,雙擊 訂單編號、 產品編號、 數量、 單價和 折扣 ,將這些欄位加入設計網格。
在設計格的 Ship City 欄位,清除 Show 列的方框。 在 標準 列中,輸入 「Chicago」 (包含單引號) 。 在用查詢結果建立表格前,請先驗證它們。
在 查詢設計 標籤的 結果 群組中,點選 執行。
按 Ctrl + S 以儲存查詢。
在 查詢名稱 框中輸入 Chicago Orders Query,然後點 選確定。
在 [常用] 索引標籤的 [檢視] 群組中,按一下 [檢視],然後按一下 [設計檢視]。
在 查詢設計 標籤的查詢 類型 群組中,點選 「建立表格」。
在 「建立表格 」對話框中,在 「表格名稱 」框中輸入 Chicago Orders,然後點擊 確定。
在 查詢設計 標籤的 結果 群組中,點選 執行。
在確認對話框中,點擊 「是」,然後在導航窗格中看到新表格顯示。
注意
如果已經有你指定的同名資料表,Access 會在執行查詢前刪除該資料表。
欲了解更多關於使用製作表格查詢的資訊,請參見 「建立製作表格查詢」。
建立一個附加查詢
你可以用附加查詢從一個或多個資料表取得資料,並將資料加入另一個資料表。
舉例來說,假設你建立了一個表格,準備與一位芝加哥的商業夥伴分享,但你發現這位夥伴同時也與密爾瓦基地區的客戶合作。 你要先在表格中加入包含密爾瓦基地區資料的資料列,再與你的同事分享。 您可以透過以下程序將密爾瓦基地區資料加入芝加哥訂單表:
- 在設計檢視中開啟你之前建立的「Chicago Orders Query」查詢。
- 在 查詢設計 標籤的查詢 類型 群組中,點擊 附加。 會開啟 「附加 」對話框。
- 在 「附加 」對話框中,點擊 「桌名」 框中的箭頭,從下拉選單中選擇 芝加哥訂單 ,然後點擊 確定。
- 在設計格子中,Ship City 欄位的 Criteria 欄中刪除「Chicago」,然後輸入「Milwaukee」。
- 在 「附加」 列中,為每欄選擇相應欄位。
在此範例中, 附加至 列的值應與 欄位 列值相符,但附加查詢並非必要條件。 - 在 查詢設計 標籤的 結果 群組中,點選 執行。
注意
執行傳回大量資料的查詢時,可能會出現錯誤訊息,指出您無法復原該查詢。 請試著將記憶體區段上限增加到 3MB,查詢才能夠執行。
如需新增查詢的詳細資訊,請參閱透過新增查詢將記錄新增至資料表。
建立更新查詢
你可以用更新查詢來更改資料表中的資料,也可以用更新查詢輸入條件來指定哪些列需要更新。 更新查詢讓您有機會在執行更新前檢視已更新的資料。
重要
動作查詢無法被撤銷。 你應該考慮用更新查詢備份你要更新的資料表。
在前一個例子中,你將列附加到芝加哥訂單表中。 在芝加哥訂單表中,Product ID 欄位顯示數字產品 ID。 為了讓資料在報表中更有用,你可以用以下步驟替換產品 ID:
在設計檢視中開啟芝加哥訂單表。
在產品 ID 列,將資料型別從 數字 改為 文字。
儲存並關閉芝加哥訂單表。
在 [建立] 索引標籤上,按一下 [查詢] 群組中的 [查詢設計]。
雙擊芝 加哥訂單 與 產品。
在 查詢設計 標籤的 查詢類型 群組中,點選 更新。
在設計格子中, 排序 和 顯示 列會消失,更新到( Update To )列會出現。
在 芝加哥訂單 表中,雙擊 產品識別 碼,將此欄位加入設計網格。
在設計網格中,產品ID欄的「更新到」列,輸入或貼上以下:[Products].[產品名稱]
秘訣
你可以用更新查詢刪除欄位值,方法是在「更新到」列中使用空字串 (「」) 或 NULL。
在 條件 列,輸入或貼上以下: [Product ID] like ([Products].[ID])
你可以透過資料表檢視更新查詢會改變哪些值。
在 設計 標籤中,點選 檢視>資料表檢視。 查詢會回傳一份將更新的產品 ID 清單。
在 查詢設計 標籤中,點擊 執行。
當你打開芝加哥訂單表時,你會發現產品識別欄位中的數字已被產品表中的產品名稱取代。
如需關於更新查詢的詳細資訊,請參閱建立和執行更新查詢。
建立刪除查詢
你可以用刪除查詢來刪除資料表中的資料,也可以用刪除查詢輸入條件來指定哪些列要刪除。 刪除查詢讓你有機會在執行刪除前檢視將被刪除的列。
舉例來說,當你準備將前一個範例中的芝加哥訂單表傳送給你的芝加哥商業夥伴時,你注意到有些列包含多個空欄位。 你決定在寄出桌子前先移除這些排。 你也可以直接打開資料表手動刪除資料列,但如果你有很多列要刪除,且有明確的刪除條件,使用刪除查詢可能會有幫助。
您可以使用以下程序查詢,刪除芝加哥訂單資料表中沒有訂單 ID 值的列:
- 在 [建立] 索引標籤上,按一下 [查詢設計]。
- 雙擊 芝加哥訂單。
- 在 查詢設計 標籤的 查詢類型 群組中,點擊 刪除。 在設計格子中, 排序 和 顯示 列消失, 刪除列則 會出現。
- 在 芝加哥訂單 表中,雙擊訂單 ID 可將其加入網格。
- 在設計網格中,訂單 ID 欄位的 Criteria 列中,類型 為 Null。
- 在 查詢設計 標籤的 結果 群組中,點選 執行。
欲了解更多關於刪除查詢的資訊,請參閱 建立並執行刪除查詢。