Microsoft Access VBA - フォームに検索機能を追加する方法

◆概要
フォームのレコードソースは、RecordsetCloneプロパティで参照できます。
これをもとにrecordsetオブジェクトを作成すると、RecordsetオブジェクトのFind系のメソッドを利用して、レコードを検索することができます。
ただし、フォームのレコードソースと、RecordsetCloneプロパティをもとに作成したRecordsetオブジェクトは、別のレコードセットです。Bookmarkプロパティを利用して、両方のカレントレコードの同期を取る必要があります。
 

Private Sub cmdFind_Click()
   ' 顧客番号で検索する
   Dim rs As DAO.Recordset

   ' レコードソースのコピーを作成
   Set rs = Me.RecordsetClone

   ' 検索
   rs.FindFirst "顧客ID= " & Me!txtキー

   ' 見つからなかったとき
   If rs.NoMatch Then
       Beep
       MsgBox "見つかりません。"
   ' 見つかったとき
   Else
       Me.Bookmark = rs.Bookmark
   End If

   ' 終了処理
   rs.Close: Set rs = Nothing
End Sub

▼ページトップに戻る