本文說明如何建立與執行新增查詢。 當您需要使用來自其他來源的資料將記錄新增到現有資料表時,您就會使用新增查詢。
如果您需要變更現有記錄集中的資料 (例如更新欄位值),您可以使用更新查詢。 如果您需要從選取的資料建立新的資料表,或將兩個資料表合併成一個新的資料表,則可以使用產生資料表查詢。 如需更新查詢或產生資料表查詢的相關資訊,或者是將記錄新增至資料庫的其他方法或變更現有資料的一般資訊,請參閱另請參閱一節。
本文內容
概觀
新增查詢會從一或多個資料來源選取記錄,並將選取的記錄複製到現有的資料表。
例如,假設您剛剛取得了一個包含潛在新客戶資料表的資料庫,但您已經有一個儲存這類資料的現有資料庫資料表。 而您想將這些資料都儲存在同一個位置,因此您決定要從新的資料庫將資料複製到您現有的資料表。 由於您不想以手動方式輸入新的資,因此決定使用新增查詢來複製這些記錄。
使用新增查詢的優點
使用查詢來複製資料,您就可以:
-
一次新增多筆記錄 如果您手動複製數據,通常必須執行多個複製/貼上作業。 使用查詢時,您可以一次選取所有數據,然後複製。
-
複製之前,請先檢閱您的選取範圍 您可以在 [數據工作表檢視] 中檢視選取範圍,並視需要調整選取範圍,然後再複製數據。 如果您的查詢包含準則或表達式,而您需要數次嘗試才能正確顯示,這會特別實用。 您無法復原新增查詢動作。 如果出錯,您必須從備份還原資料庫,或是手動或使用刪除查詢來修正錯誤。
-
使用準則來縮小選取範圍 例如,您可能只想要新增居住在您城市的客戶記錄。
-
當數據源中的某些欄位不存在於目的數據表時附加記錄 例如,假設您現有的客戶數據表有 11 個字段,而您想要複製的新數據表只有這 11 個字段中的 9 個。 您可以使用追加查詢,從符合的九個字段複製數據,並將其他兩個字段留白。
新增查詢的基本步驟
新增查詢的建立程序遵循這些基本步驟:
-
建立選取查詢 首先,選取您要複製的數據。 您可以視需要調整選取查詢,並視需要多次執行,以確保您選取的是要複製的數據。
-
將選取查詢轉換為追加查詢 選取項目準備就緒后,您會將查詢類型變更為 [附加]。
-
選擇追加查詢中每個數據行的目標欄位 在某些情況下,Access 會自動為您選擇目標欄位。 您可以調整目標欄位,如果 Access 沒有,也可以選擇它們。
-
預覽並執行查詢以附加記錄 在您新增記錄之前,您可以切換到 [資料工作表檢視] 以預覽新增的記錄。
重要: 您無法復原新增查詢動作。 請考慮備份資料庫或目標資料表。
建立與執行新增查詢
本節內容
步驟 1:建立查詢以選取要複製的記錄
-
開啟內含欲複製記錄的資料庫。
-
在 [建立] 索引標籤的 [查詢] 群組中,按一下 [查詢設計]。
-
按兩下您欲複製記錄的資料表或查詢,然後按一下 [關閉]。
資料表或查詢會在查詢設計工具中以一或多個視窗顯示。 每個視窗會列出資料表或查詢中的欄位。 此圖顯示查詢設計工具中的典型資料表。
1. 顯示在查詢設計工具中的資產資料表
2. 查詢設計格線
-
按兩下您要新增的每個欄位。 選取的欄位就會出現在查詢設計格線的 [欄位] 列中。
來源資料表中的欄位資料類型必須相容於目標資料表中的欄位資料類型。 文字欄位相容於大部分其他類型的欄位。 數字欄位只相容於其他數字欄位。 例如,您可以將數字新增至文字欄位,但無法將文字新增至數字欄位。
您也可以使用運算式表示欄位 (例如 =Date() 會自動傳回今天的日期),您可以在設計格線中以表格或查詢欄位搭配運算式來自訂您選取的資料。 例如,如果您的目標數據表有一個儲存四位數年份的欄位,而來源數據表有一般日期/時間字段,您可以使用 DatePart 函數搭配來源欄位,只選取年份。
若要在資料表中快速新增所有欄位,請在資料表欄位清單頂端按兩下星號 (*)。 此圖顯示已新增所有欄位的設計格線。
-
您也可以在設計格線的 [準則] 列中輸入一或多個準則。 下表顯示部分範例準則並說明這些準則對查詢的影響。
準則
影響
> 234
傳回所有大於 234 的數字。 若要尋找所有小於 234 的數字,請使用 <234。
>= "Callahan"
傳回從 Callahan 到字母表最後一個字母之間的所有記錄。
Between #2/2/2017# And #12/1/2017#
傳回 2017 年 2 月 2 日到 2017 年 12 月 1 日之間的日期 (ANSI-89)。 如果資料庫是使用 ANSI-92 萬用字元,請使用單引號 (') 來代替井字號。 例如:Between '2/2/2017' And '12/1/2017'。
Not "德國"
尋找欄位內容不完全等於 "德國" 的所有記錄。 這個準則將會傳回包含 "德國" 以及其他字元的記錄,例如 "德國 (歐元)" 或 "歐洲 (德國)"。
Not "T*"
會尋找除了以 T 為開頭之外的所有記錄。如果資料庫是使用 ANSI-92 萬用字元集,請使用百分比符號 (%) 來代替星號 (*)。
Not "*t"
尋找結尾不是 t 的所有記錄。 如果資料庫是使用 ANSI-92 萬用字元集,請使用百分比符號代替星號。
In(加拿大,英國)
會在清單中尋找包含「加拿大」或「英國」的所有記錄。
Like "[A-D]*"
會在文字欄位中尋找以字母 A 到 D 開頭的所有記錄。如果資料庫是使用 ANSI-92 萬用字元集,請使用百分比符號代替星號。
Like "*ar*"
會尋找包含 "ar" 這兩個連續字母的所有記錄。 如果資料庫是使用 ANSI-92 萬用字元集,請使用百分比符號代替星號。
Like "Maison Dewe?"
會尋找符合下面條件的所有記錄:開頭是 "Maison" 並且第二個字串包含 5 個字母,其中前面 4 個字母是 "Dewe",最後一個則是未知的字母 (以問號表示)。 如果資料庫是使用 ANSI-92 萬用字元集,請使用底線 (_) 代替問號。
#2/2/2017#
會尋找 2017 年 2 月 2 日的所有記錄。 如果資料庫是使用 ANSI-92 萬用字元集,請使用單引號代替井字號 (#) 括住日期。 範例:'2/2/2017'。
< Date() - 30
傳回 30 天以前的所有日期。
Date()
傳回包含今天日期的所有記錄。
Between Date() And DateAdd("M", 3, Date())
傳回在今天日期和今天日期後三個月之間的所有記錄。
Is Null
會傳回包含 Null (空白或未定義) 值的所有記錄。
Is Not Null
會傳回包含值的所有記錄。
""
會傳回包含零長度字串的所有記錄。 當您需要將值新增至必要欄位,但是您還不知道該值時,可以使用零長度的字串。 例如,某個欄位可能需要輸入傳真號碼,但有些客戶可能沒有傳真機。 在這種情況下,請輸入一對中間不含任何空格的雙引號 (""),而非數字。
-
在 [ 查詢設計] 索引 標籤的 [ 結果 ] 群組中,按兩下 [ 執行 ] 。
-
確認查詢傳回您要複製的記錄。 如果需要從查詢新增或移除欄位,請切換回 [設計檢視],並依前述步驟所述新增欄位,或者選取您不要的欄位,然後按下 DELETE,從查詢移除那些欄位。
步驟 2:將選取查詢轉換為新增查詢
-
在 [常用] 索引標籤的 [檢視] 群組中,按一下 [檢視],然後按一下 [設計檢視]。
-
在 [ 查詢設計] 索引 標籤的 [ 查詢類型] 群組中,按兩下 [ 附加]。
[新增] 對話方塊就會出現。
-
接下來,指定要將記錄新增至目前資料庫中的資料表,或新增至不同資料庫的資料表。
請執行下列其中一項操作:
-
在 [新增] 對話方塊中,按一下 [目前資料庫],從 [資料表名稱] 下拉式方塊選取目標資料表,然後按一下 [確定]。
-或者-
-
在 [新增] 對話方塊中,按一下 [其他資料庫]。
-
在 [檔案名稱] 方塊中,輸入目標資料庫的位置和名稱。
-
在 [資料表名稱] 下拉式方塊中,輸入目標資料表的名稱,然後再按一下 [確定]。
-
步驟 3:選擇目標欄位
您選擇目標欄位的方式取決於步驟 1 中建立選取查詢的方式。
如果您... |
存取... |
---|---|
已從來源資料表或查詢新增所有欄位 |
將目標資料表中的所有欄位新增至設計格線中的 [新增至] 列。 |
已將個別欄位新增至查詢或已使用的運算式,而且來源資料表與目標資料表的欄位名稱相符 |
自動將相符的目標欄位新增至查詢中的 [新增至] 列 |
已新增個別欄位或已使用運算式,而且來源資料表與目標資料表中的任何名稱都不相符 |
新增相符的欄位,並讓不相符的欄位保留空白 |
如果 Access 讓這些欄位保留空白,您可以按一下 [新增至] 列中的任一儲存格,然後選取目標欄位。
此圖說明如何在 [新增至] 列中按一下儲存格並選取目標欄位。
附註: 如果您將目標欄位保留空白,查詢即不會將資料新增到該欄位。
步驟 4:預覽及執行新增查詢
-
若要預覽變更,請切換至 [資料工作表檢視]。
提示: 若要快速切換檢視,請以滑鼠右鍵按一下查詢頂端的索引標籤,然後按一下您要的檢視。
-
返回 [設計視圖],然後按兩下 [ 執行 以附加記錄。
附註: 執行傳回大量資料的查詢時,可能會出現錯誤訊息,指出您無法復原該查詢。 請試著將記憶體區段上限增加到 3MB,查詢才能夠執行。
停止停用模式而不要封鎖查詢
如果您嘗試執行某個新增查詢,但好像什麼動作都沒有發生,請確認 Access 狀態列是否出現下列訊息:
巨集指令或事件已經被停用模式封鎖。
若要修正此問題,請按一下訊息列中的 [啟用內容] 以啟用查詢。
附註: 當您啟用新增查詢時,也會啟用所有其他資料庫內容。
如果您沒有看到 [訊息列],表示該訊息列可能為隱藏狀態。 除非也已停用,否則您可以顯示它。 如果訊息列已停用,您可以啟用它。