使用查詢可讓您更輕鬆地檢視、新增、刪除或變更 Access 資料庫中的資料。 使用查詢的其他一些原因:
透過篩選特定準則 (條件來快速尋找特定資料)
計算或合計資料
自動化資料管理任務,例如定期檢閱最新的資料。
查詢可協助您尋找及使用您的資料
在設計完善的資料庫中,您想要透過表單或報表顯示的資料通常位於多個資料表中。 查詢可以從各種資料表提取資訊,並將其組合以在表單或報表中顯示。 查詢可以是對資料庫中資料結果的要求,或對資料執行動作的要求,或兩者皆是。 查詢可以提供簡單問題的答案、執行計算、合併來自不同表格的資料、新增、變更或刪除資料庫中的資料。 由於查詢非常多樣化,因此查詢有許多類型,您可以根據工作建立查詢類型。
| 主要查詢類型 | 使用 |
|---|---|
| 請選取 | 用於擷取資料表中的資料或執行計算。 |
| 動作 | 新增、變更或刪除資料。 每個工作都有特定類型的動作查詢。 |
建立選取查詢
如果您只想要檢閱資料表中特定欄位的資料,或同時檢閱多個資料表中的資料,或只想根據特定準則查看資料,則選擇 [選取查詢類型]。 如需詳細資訊,請參閱 建立簡單的選取查詢。
從選取欄位檢閱資料
例如,如果您的資料庫有一個包含大量產品相關資訊的資料表,而您想要檢閱產品清單及其價格,您可以透過以下方式建立選取查詢,只傳回產品名稱和個別價格:
- 開啟資料庫,然後在 [建立 ] 索引標籤上,按一下 [ 查詢設計]。
- 在 [表格 ] 索引標籤上,按兩下 [產品] 資料表。
- 在 [產品] 資料表中,假設您有 [產品名稱] 和 [標價] 欄位。 按兩下 [產品名稱 ] 和 [標價 ],將這些欄位新增至查詢設計格線。
- 在 [ 查詢設計 ] 索引標籤上,按一下 [執行]。 查詢隨即執行並顯示產品清單及其價格。
同時檢閱多個相關資料表中的資料
例如,如果您有一家銷售食品的商店資料庫,而您想要檢閱特定城市客戶的訂單。 假設有關訂單的資料和有關客戶的資料分別儲存在兩個名為 [客戶] 和 [訂單] 的資料表中。 如果每個資料表都有客戶識別碼欄位,這會形成兩個資料表之間一對多關聯性的基礎。 您可以使用下列程序建立查詢,傳回特定城市 (例如拉斯維加斯) 客戶的訂單:
- 開啟資料庫。 在 [建立] 索引標籤上,按一下 [查詢] 群組中的 [查詢設計]。
- 在 [表格 ] 索引標籤上,按兩下 [客戶 和 訂單]。
請注意 (連接 [客戶] 資料表中 [識別碼] 欄位和 [訂單] 資料表中 [客戶識別碼] 欄位的連接線稱為連接) 。 此行顯示兩個資料表之間的關聯。 - 在 [客戶] 資料表中,按兩下 [公司 ] 和 [城市 ],將這些欄位新增至查詢設計格線。
- 在查詢設計方格的 [ 城市 ] 欄中,清除 [ 顯示 ] 列的核取方塊。
- 在 [城市] 欄的 [準則] 列中,輸入 Las Vegas。
清除 [顯示] 核取方塊可防止查詢在結果中顯示城市,而在 [準則] 資料列中輸入拉斯維加斯可指定您只想查看 [城市] 欄位值為拉斯維加斯的記錄。 在此情況下,查詢只會傳回位於拉斯維加斯的客戶。 您不需要顯示欄位來搭配準則使用。 - 在 [訂單] 資料表中,按兩下 [訂單識別碼 ] 和 [訂單日期 ],將這些欄位新增至查詢設計格線的接下來兩欄。
- 在 [查詢設計] 索引標籤的 [結果] 群組中,按一下 [執行]。 查詢隨即執行,並顯示拉斯維加斯客戶的訂單清單。
- 按下 CTRL+S 儲存查詢。
建立參數查詢
如果想要經常執行特定查詢的變化,請考慮使用參數查詢。 當您執行參數查詢時,查詢會提示您輸入欄位值,然後使用您提供的值來建立查詢準則。
延續您學習建立針對位於拉斯維加斯的客戶訂單的選取查詢的先前範例,您可以修改選取查詢,以在每次執行查詢時提示您指定城市。 若要繼續進行,請開啟您在前一個範例中建立的資料庫:
在 [瀏覽窗格] 中,以滑鼠右鍵按一下您在上一節 () 中建立之名為 [依城市訂單] 的查詢,然後按一下捷徑功能表上的 [設計檢視 ]。
在查詢設計方格中,在 [城市] 欄的 [準則] 列中,刪除 Las Vegas,然後輸入 [For what city?]。
字串 [For what city?] 是參數提示。 方括號表示您要查詢要求輸入,而在此案例中,文字 (「 For what city?」) 參數提示顯示的問題。注意
句號 (.) 或驚嘆號都不能 (!) 做為參數提示字元中的文字。
選取 [城市] 欄 [ 顯示 ] 列中的核取方塊,查詢結果就會顯示城市。
在 [查詢設計] 索引標籤的 [結果] 群組中,按一下 [執行]。 查詢會提示您輸入 [城市] 的值。
輸入 New York,然後按 ENTER 以查看紐約客戶的訂單。
如果您不知道可以指定哪些值怎麼辦? 您可以在提示中使用萬用字元:在 [常用] 索引標籤的 [檢視] 群組中,按一下 [檢視],然後按一下 [設計檢視]。
在查詢設計方格中,在 [城市] 欄的 [準則] 列中,輸入 Like [For what city?]&“*”。
在此參數提示字元中, Like 關鍵字、符號 (&) ,以及用引號括住的星號 (*) 可讓使用者輸入字元組合,包括萬用字元,以傳回各種結果。 例如,如果使用者輸入 *,查詢會傳回所有城市;如果使用者輸入 L,查詢會傳回以字母 “L” 開頭的所有城市;如果使用者輸入 *s*,則查詢會傳回包含字母 “s” 的所有城市。在 [ 查詢設計 ] 索引標籤的 [ 結果 ] 群組中,按一下 [執行],然後在查詢提示字元中輸入 New,然後按 ENTER。
查詢隨即執行,並顯示紐約客戶的訂單。
指定參數資料類型
您也可以指定參數應該接受哪些類型的資料。 您可以設定任何參數的資料類型,但務必要設定數值、貨幣或日期/時間資料的資料類型。 當您指定參數應接受的資料類型時,使用者就可在輸入錯誤的資料類型時,看見比較有用的錯誤訊息,例如,必須輸入貨幣資料而不是文字。
如果將參數設定為接受文字資料,則任何輸入項目都會解譯成文字,且不會顯示任何錯誤訊息。
若要指定查詢中參數的資料類型,請使用下列程序:
- 在 [設計檢視] 中開啟查詢後,按一下 [ 查詢設計 ] 索引標籤上的 [顯示/隱藏 ] 群組中的 [ 參數]。
- 在 [查詢參數] 對話方塊的 [參數] 資料行中,為您想要指定資料類型的每一個參數鍵入提示。 請務必確認每個參數都符合您在查詢設計格線的 [準則] 資料列中使用的提示。
- 在 [資料類型] 資料行中,選取每個參數的資料類型。
如需詳細資訊,請參閱 在 執行查詢時使用參數要求輸入。
建立合計查詢
資料工作表中的 [合計] 列很實用,但對於較複雜的問題,您可以使用合計查詢。 合計查詢是一種選取查詢,可讓您對資料進行分組和摘要,例如何時想要查看每個產品的總銷售額。 在合計查詢中,您可以使用 Sum 函數 (彙總函數) 來查看每個產品的總銷售額。
使用下列程序修改您在前一個範例中建立的產品小計查詢,使其依產品摘要產品小計。
- 按一下 [常用 ] 索引標籤上的 [ 檢視>設計檢視]。
[產品小計] 查詢隨即會在 [設計檢視] 中開啟。 - 在 [查詢設計 ] 索引標籤的 [顯示/隱藏 ] 群組中,按一下 [合計]。
[ 合計] 列會顯示在查詢設計方格中。
注意
雖然它們具有相似的名稱,但設計格線中的 [合計 ] 列與資料工作表中的 [ 合計 ] 列並不相同:
- 您可以使用設計格線中的 [合計 ] 列,依欄位值進行分組。
- 您可以在合計查詢的結果中新增資料工作表 [合計 ] 資料列。
- 當您在設計方格中使用 [合計 ] 列時,您必須為每個欄位選擇彙總函數。 如果您不想在欄位上執行計算,您可以依欄位分組。
- 在設計格線第二欄的 [ 合計 ] 列中,從下拉式清單中選取 [ 加總 ]。
- 在 [查詢設計] 索引標籤的 [結果] 群組中,按一下 [執行]。 查詢隨即執行,並顯示含有小計的產品清單。
- 按下 CTRL+S 儲存查詢。 讓查詢保持開啟狀態。
如需詳細資訊,請參閱 使用 [合計] 列顯示資料工作表中的資料行總數。
根據您的資料進行計算
您通常不會使用表格來儲存計算結果值,例如小計,即使它們是基於相同資料庫中的資料,因為如果計算值依據的值發生變化,計算值可能會變得過時。 例如,您不會將某人的年齡儲存在表格中,因為您每年都必須更新該值;相反地,您會儲存人員的出生日期,然後使用查詢來計算此人員的年齡。
例如,假設您有一些想銷售產品的資料庫。 此資料庫有一個名為 [訂單詳細資料] 的資料表,其中包含每個產品的價格和數量等欄位中的產品相關資訊。 您可以使用查詢來計算小計,該查詢將每個產品的數量乘以該產品的單價,將每個產品的數量乘以該產品的單價和折扣,然後從總單價中減去總折扣。 如果您在前一個範例中建立了範例資料庫,請開啟它並繼續進行:
- 在 [建立] 索引標籤上,按一下 [查詢設計]。
- 在 [表格 ] 索引標籤上,按兩下 [訂單詳細資料]。
- 在 [訂單詳細資料] 資料表中,按兩下 [產品識別碼 ] 以將此欄位新增至查詢設計格線的第一欄。
- 在格線的第二欄中,以滑鼠右鍵按一下 [欄位 ] 列,然後按一下捷徑功能表上的 [縮放 ]。
- 在 [ 顯示比例 ] 方塊中,輸入或貼上下列內容: 小計: ([數量]*[單價]) - ([數量]*[單價]*[折扣])
- 按一下 [確定]。
- 在 [ 查詢設計 ] 索引標籤上,按一下 [執行]。 查詢隨即執行,然後顯示每個訂單的產品和小計清單。
- 按 CTRL+S 儲存查詢,然後將查詢命名為 Product Subtotals。
如需詳細資訊,請參閱 使用 [合計] 列顯示資料工作表中的資料行總數。
顯示摘要或彙總資料
當您使用資料表來記錄交易或儲存定期發生的數值資料時,能夠檢閱彙總的資料(例如總和或平均值)是很有用的。 在 Access 中,您可以將合計列新增至資料工作表。 合計列是資料工作表底部的一列,可以顯示累加值或其他彙總值。
- 執行您先前建立的產品小計查詢,並將結果保持在 [資料工作表檢視] 中開啟。
- 按一下 [常用] 索引標籤上的 [合計]。 資料工作表底部隨即出現新列,第一欄中含有「 合計 」一詞。
- 按一下名為 [合計] 的資料工作表最後一列的儲存格。
- 按一下箭號以檢視可用的彙總函數。 由於欄中包含文字資料,因此只有兩個選項: [無 ] 和 [計數]。
- 選取 [計數]。 儲存格的內容隨即從 [總計 ] 變更為欄值的計數。
- 按一下第二欄) (相鄰的儲存格。 請注意,儲存格中會出現一個箭號。
- 按一下箭號,然後按一下 [加總]。 欄位會顯示欄值的總和。
- 在 [資料工作表檢視] 中保持查詢開啟。
建立交叉資料表查詢
現在假設您想要檢閱產品小計,但也想要依月份彙總,如此一來,每一列都會顯示產品的小計,而每一欄都會顯示一個月的產品小計。 若要顯示產品的小計和產品一個月的小計,請使用交叉資料表查詢。
您可以再次修改產品小計查詢,讓查詢傳回產品小計資料列和每月小計資料行。
- 在 [常用] 索引標籤的 [檢視] 群組中,按一下 [檢視],然後按一下 [設計檢視]。
- 在 [查詢設定] 群組中,按一下 [新增資料表]。
- 按兩下 [訂單],然後按一下 [關閉]。
- 在 [查詢設計 ] 索引標籤的 [ 查詢類型 ] 群組中,按一下 [交叉資料表]。 在設計格線中,[ 顯示 ] 列會隱藏起來,而顯示 [ 交叉資料表 ] 列。
- 在設計格線的第三欄中,以滑鼠右鍵按一下 [欄位 ] 列,然後按一下捷徑功能表上的 [ 縮放 ]。 [ 顯示比例 ] 方塊隨即開啟。
- 在 [顯示比例 ] 方塊中,輸入或貼上下列內容: 月: “Month ” & DatePart (“m”, [訂單日期])
- 按一下 [確定]。
- 在 [ 交叉資料表 ] 列中,從下拉式清單中選取下列值:第一欄的 [ 列標題 ]、第二欄的 [值 ] 和第三欄的 [ 欄標題 ]。
- 在 [查詢設計] 索引標籤的 [結果] 群組中,按一下 [執行]。 查詢隨即執行,然後顯示依月份彙總的產品小計。
- 按下 CTRL+S 儲存查詢。
如需交叉資料表查詢的詳細資訊,請參閱 使用交叉資料表查詢讓摘要資料更易於閱讀。
建立產生資料表查詢
您可以使用產生資料表查詢,從儲存在其他資料表中的資料建立新的資料表。
例如,假設您想要將芝加哥訂單的資料傳送給使用 Access 準備報表的芝加哥商務合作夥伴。 與其傳送所有訂單資料,您想要將傳送的資料限制為芝加哥訂單的特定資料。
您可以建置包含芝加哥訂單資料的選取查詢,然後使用選取查詢以使用下列程序建立新資料表:
開啟前述範例中的範例資料庫。
若要執行產生資料表查詢,您可能需要啟用資料庫內容。注意
如果您在功能區下方看到有關啟用資料庫的訊息,請按一下 [啟用內容]。如果您的資料庫已位於信任的位置,您將不會看到 [訊息列]。
在 [建立] 索引標籤上,按一下 [查詢] 群組中的 [查詢設計]。
按兩下 [訂單詳細資料] 和 [訂單]。
在 [訂單] 資料表中,按兩下 [客戶識別碼 ] 和 [出貨城市] ,將這些欄位新增至設計格線。
在 [ 訂單詳細資料] 資料表中,按兩下 [訂單識別碼]、[ 產品識別碼]、[ 數量]、[ 單價] 和 [折扣 ],將這些欄位新增到設計格線。
在設計格線的 [船舶城市 ] 欄中,清除 [ 放映 ] 列中的方塊。 在 [準則 ] 資料列中,輸入 'Chicago' , (單引號) 。 在使用查詢結果建立資料表之前,請先驗證查詢結果。
在 [查詢設計] 索引標籤的 [結果] 群組中,按一下 [執行]。
按 Ctrl + S 儲存查詢。
在 [查詢名稱] 方塊中,輸入 Chicago Orders Query,然後按一下 [確定]。
在 [常用] 索引標籤的 [檢視] 群組中,按一下 [檢視],然後按一下 [設計檢視]。
在 [查詢設計 ] 索引標籤的 [查詢類型 ] 群組中,按一下 [建立表格]。
在 [建立表格 ] 對話方塊的 [資料表名稱 ] 方塊中,輸入 Chicago Orders,然後按一下 [確定]。
在 [查詢設計] 索引標籤的 [結果] 群組中,按一下 [執行]。
在確認對話方塊中,按一下 [是],然後看到 [功能窗格] 中顯示的新資料表。
注意
如果已有您指定之名稱相同的資料表,Access 會在執行查詢之前刪除該資料表。
如需使用產生資料表查詢的詳細資訊,請參閱 建立產生資料表查詢。
建立新增查詢
您可以使用新增查詢從一或多個資料表擷取資料,並將該資料新增至另一個資料表。
例如,假設您建立了一個資料表來與芝加哥的商務夥伴共用,但您發現該同事也與密爾瓦基地區的客戶合作。 您想要在與同事共用資料表之前,先將包含密爾瓦基區域資料的資料列新增至資料表。 您可以使用下列程序,將密爾瓦基地區資料新增到 [芝加哥訂單] 資料表:
- 在 [設計檢視] 中,開啟您先前建立的名為 “Chicago Orders Query” 的查詢。
- 在 [查詢設計] 索引標籤的 [查詢類型] 群組中,按一下 [附加]。 [ 附加 ] 對話方塊隨即開啟。
- 在 [新增] 對話方塊中,按一下 [資料表名稱] 方塊中的箭號,從下拉式清單中選取 [Chicago Orders],然後按一下 [確定]。
- 在設計格線中,在 [出貨城市] 欄的 [準則 ] 列中,刪除 'Chicago',然後輸入 'Milwaukee'。
- 在 [附加至 ] 資料列中,為每一欄選取適當的欄位。
在此範例中, [附加至 ] 資料列值應符合 [ 欄位 ] 資料列值,但這不是新增查詢運作的必要條件。 - 在 [查詢設計] 索引標籤的 [結果] 群組中,按一下 [執行]。
注意
執行傳回大量資料的查詢時,可能會出現錯誤訊息,指出您無法復原該查詢。 請試著將記憶體區段上限增加到 3MB,查詢才能夠執行。
如需新增查詢的詳細資訊,請參閱透過新增查詢將記錄新增至資料表。
建立更新查詢
您可以使用更新查詢來變更資料表中的資料,也可以使用更新查詢來輸入準則以指定應更新的資料列。 更新查詢可讓您有機會在執行更新之前檢閱已更新的資料。
重要
巨集指令查詢無法復原。 您應該考慮使用更新查詢來備份將更新的任何資料表。
在上述範例中,您已將列附加到 Chicago Orders 資料表。 在 Chicago Orders 資料表中,[產品識別碼] 欄位會顯示數值產品識別碼。 若要讓資料在報表中更實用,您可以使用下列程序將產品 ID 取代為產品名稱:
在 [設計檢視] 中開啟 Chicago Orders 資料表。
在 [產品識別碼] 資料列中,將 [資料類型] 從 [數字 ] 變更為 [文字]。
儲存並關閉 Chicago Orders 資料表。
在 [建立] 索引標籤上,按一下 [查詢] 群組中的 [查詢設計]。
按兩下 Chicago Orders and Products。
在 [查詢設計 ] 索引標籤的 [查詢類型 ] 群組中,按一下 [ 更新]。
在設計格線中,[ 排序 ] 和 [顯示 ] 列消失,而顯示 [ 更新至 ] 列。
在 [Chicago Orders] 資料表中,按兩下 [產品識別碼 ] 以將此欄位新增至設計格線。
在設計格線中,在 [產品識別碼] 欄的 [更新至] 列中,輸入或貼上下列內容:[產品]。【產品名稱】
秘訣
您可以在更新至資料列中使用空白字串 (“”) 或 NULL,來使用更新查詢來刪除欄位值。
在 [準則 ] 資料列中,輸入或貼上下列內容: [產品識別碼] Like ([產品]。[ID])
您可以在 [資料工作表檢視] 中檢視查詢,來檢閱更新查詢將變更哪些值。
在 [ 設計 ] 索引標籤上,按一下 [檢視>資料工作表檢視]。 查詢會傳回將要更新的產品識別碼清單。
在 [ 查詢設計 ] 索引標籤上,按一下 [執行]。
當您開啟 [Chicago Orders] 資料表時,您會看到 [產品識別碼] 欄位中的數值已由 [產品] 資料表中的產品名稱取代。
如需關於更新查詢的詳細資訊,請參閱建立和執行更新查詢。
建立刪除查詢
您可以使用刪除查詢從資料表中刪除資料,也可以使用刪除查詢來輸入準則以指定應刪除的資料列。 刪除查詢可讓您有機會在執行刪除之前檢閱要刪除的資料列。
例如,假設當您準備將上一個範例中的 Chicago Orders 資料表傳送給您的芝加哥商務夥伴時,您注意到某些資料列包含許多空白欄位。 您決定在傳送資料表之前移除這些資料列。 您可以直接開啟資料表並手動刪除資料列,但如果您有許多資料列要刪除,而且您有清楚的準則指定應該刪除哪些資料列,您可能會發現使用刪除查詢很有幫助。
您可以使用查詢,以刪除 [Chicago Orders] 資料表中沒有訂單識別碼值的資料列,方法是使用下列程序:
- 在 [建立] 索引標籤上,按一下 [查詢設計]。
- 按兩下 Chicago Orders。
- 在 [查詢設計 ] 索引標籤的 [查詢類型 ] 群組中,按一下 [ 刪除]。 在設計格線中,[ 排序 ] 和 [顯示 ] 列消失,隨即顯示 [ 刪除 ] 列。
- 在 [Chicago Orders] 資料表中,按兩下 [訂單識別碼] 以將它新增至方格。
- 在設計格線中,在 [訂單識別碼] 欄的 [準則 ] 列中,輸入 Is Null。
- 在 [查詢設計] 索引標籤的 [結果] 群組中,按一下 [執行]。
如需刪除查詢的詳細資訊,請參閱 建立和執行刪除查詢。