ray88’s diary

お仕事で困ったとき用の自分用の覚書

AccessVBA Recordset.Findメソッド レコードセットから特定レコードを検索しカレントレコードとする

フォームのRecordsetプロパティで取得したレコードセットオブジェクトにFind系メソッドを使用すると、
 レコードセットから特定のレコードを検索し、カレントレコードにすることができる。

【書式】

オブジェクト.RecordSet.FindFirst 条件式
オブジェクト.RecordSet.FindLast 条件式
オブジェクト.RecordSet.FindNext 条件式
オブジェクト.RecordSet.FindPrevious 条件式

■各メソッドの検索開始位置と検索方向

メソッド 検索開始位置 検索方向
FindFirst レコードセットの先頭 レコードセットの末尾
FindLast レコードセットの末尾 レコードセットの先頭
FindNext カレントレコード レコードセットの末尾
FindPrevious カレントレコード レコードセットの先頭

■NoMatchプロパティ:Find系メソッドで検索した結果を以下の値で返す
           検索結果なし⇒「True」 検索結果あり→「False」
(使用例)

Private Sub btn7_Click() '[レコードの検索]ボタン
    Dim MyName As String
    MyName = InputBox("検索する社員名の一部を入力してください")
    If MyName <> "" Then
        Me.Recordset.FindFirst "社員名 Like '*" & MyName & "*'"
        If Me.Recordset.NoMatch Then
            MsgBox MyName & "を含むレコードが見つかりませんでした"
        Else
            MsgBox MyName & "を含むレコードが見つかりました"
        End If
    End If
End Sub

f:id:ray88:20201121123955p:plain
f:id:ray88:20201121124114p:plain