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