SearchForRecord 巨集動作

套用到
Microsoft 365 Access Access 2024 Access 2021 Access 2019 Access 2016

您可以在 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 標準才會有效。
  • 您也可以使用邏輯運算子,例如 <>ANDORBETWEENFindRecord 動作僅會比對等於、開頭或包含要搜尋之字串的字串。

範例

下列巨集會先使用 OpenTable 巨集指令開啟 [類別] 資料表。 巨集接著會使用 SearchForRecord 巨集指令,在 [描述] 欄位等於 "Beverages" 的資料表中尋找第一筆記錄。

[動作] 引數
OpenTable 資料表名稱:類別
ViewDatasheet
資料模式編輯
SearchForRecord 物件類型資料表
物件名稱:類別
記錄第一筆
Where Condition:描述 = "Beverages"