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