您可以在 Access 桌面資料庫中使用 SearchForCord 宏指令來搜尋數據表、查詢、表單或報表中的特定記錄。
設定
SearchForRecord 宏指令具有下列自變數。
巨集指令引數 |
描述 |
||||||||||
物件類型 |
輸入或選取您要搜尋的資料庫物件類型。 您可以選 取 [數據表]、 [查詢]、[表 單] 或 [ 報表]。 |
||||||||||
物件名稱 |
輸入或選取包含要搜尋之記錄的特定物件。 下拉式清單會顯示您為 Object Type 自變數選取之類型的所有資料庫物件。 |
||||||||||
記錄 |
指定搜尋的起點和方向。
|
||||||||||
Where 條件 |
使用與 SQL WHERE 子句相同的語法輸入搜尋準則,但不使用 「WHERE」 這個字。 例如, Description = "Beverages" 若要建立包含表單上文字框值的準則,您必須建立一個運算式,將準則的第一部分與包含要搜尋之值的文字框名稱串連。 例如,下列準則會在名為frmCategories的表單上,搜尋名為 txtDescription 之文字框中的 [描述] 字段中的值。 請注意,等號 (= 在表達式開頭) ,在文本框參照的任一側使用單引號 (『) : ="Description = '" & Forms![frmCategories]![txtDescription] & "'" |
註解
-
在超過一筆記錄符合 Where 條件 自變數中的準則時,下列因素會決定找到哪一筆記錄:
-
Record 自變數設定 如需 Record 自變數的詳細資訊,請參閱 [設定] 區段中的表格。
-
記錄的排序順序 例如,如果 Record 自變數 設為 [第一筆],變更記錄的排序順序可能會變更找到的記錄。
-
-
在執行此動作之前,必須先開啟 [ 物件名稱 ] 自變數中指定的物件。 否則會發生錯誤。
-
如果 Where 條件 自變數中的準則未符合,則不會發生錯誤,且焦點仍停留在當前記錄上。
-
搜尋上一筆或下一筆記錄時,搜尋在到達數據結尾時並不會「換行」。 如果沒有符合準則的進一步記錄,就不會發生任何錯誤,而且焦點仍停留在當前記錄上。 若要確認找到相符專案,您可以輸入下一個動作的條件,並讓條件與 Where 條件 自變數中的準則相同。
-
若要在 VBA 模組中執行 SearchForRecord 宏指令,請使用 DoCmd 物件的 SearchForRecord 方法。
-
SearchForRecord 宏指令類似於 FindRecord 宏指令,但 SearchForRecord 具有更強大的搜尋功能。 FindRecord 宏指令主要用於尋找字串,並重複 [尋找] 對話方塊的功能。 SearchForRecord 宏指令所使用的準則,與篩選或 SQL 查詢的準則比較類似。 下列清單會示範您可以使用 SearchForRecord 宏指令執行的一些動作:
-
您可以在 Where 條件 自變數中使用複雜的準則,例如
-
描述 = “飲料” 和 CategoryID = 11
-
您可以參照位於表單或報表之記錄來源,但未顯示在表單或報表上的欄位。 在上述範例中,不一定要在窗體或報表上顯示 Description 或 CategoryID ,準則才能正常運作。
-
您可以使用邏輯運算符,例如 <、 >、 AND、 OR 及 BETWEEN。 FindRecord 動作僅符合等於、開頭或包含要搜尋之字串的字串。
範例
下列宏會先使用 OpenTable 宏指令開啟 [類別] 數據表。 宏接著會使用 SearchForRecord 宏指令,在 [描述] 欄位等於 「飲料」的數據表中尋找第一筆記錄。
動作 |
引數 |
OpenTable |
數據表名稱:類別 View:Datasheet 數據模式: 編輯 |
SearchForRecord |
物件類型: 表格 物件名稱:類別 記錄: 第一筆 Where 條件:D escription = “飲料” |