Microsoft Access Club >VBAのTips解説 >このページ >次頁 < 前項  サイト内検索
 

DAOを用いてレコード検索を行う方法 : VBAのTips解説



FindFirst/FindLast/FindNext/FindPreviousメソッド

FindFirst、FindLast、FindNext、FindPreviousメソッドとは、ダイナセットタイプまたはスナップショットタイプのRecordsetオブジェクトで、レコード検索を行うメソッドです。検索されたレコードは、カレントレコードになります。これはJet ワークスペースでのみ使用できます。

メソッドの種類 意味
FindFirst 先頭のレコードから最後のレコードに向かって検索する
FindLast 最後のレコードから先頭のレコードに向かって検索する
FindNext 最後のレコードに向かって検索する
FindPrevious 先頭のレコードに向かって検索する
  • 書式
recordset.{FindFirst | FindLast | FindNext | FindPrevious} criteria
  • 引数
引数 意味 指定
recordset 開いているRecordsetオブジェクト変数を指定します 省略不可
criteria レコードの検索条件を指定します 省略不可

関連項目

  1. CurrentDb(DAO)
  2. OpenRecordsetメソッド(DAO)
  3. FindFirstメソッド(DAO)
  4. Findメソッド(ADO)

事例 ) 「住所録」テーブルレコードを「取引先検索」コンボボックスで選択し表示する

「住所録」テーブルレコードを「取引先検索」コンボボックスで選択し表示します。

  1. テーブルを作成します。
  2. ID、登録年月日、会社名、住所フィールドを作成します。
  3. 連結フォームを作成します。
  4. ID、登録年月日、会社名、住所テキストボックスを作成します。
  5. コンボボックスを作成します。
  6. 実行するコマンドボタンを作成します。

コマンドボタンクリック時イベントプロシージャの作成

コマンドボタンクリック時イベントプロシージャを以下のように作成します。

Private Sub 検索実行_Click()

   Dim db As DAO.Database
   Dim rs As DAO.Recordset
   Dim strRet As String

   Set db = CurrentDb
   Set rs = db.OpenRecordset("住所録", dbOpenDynaset)
   strRet = "氏名='" & Me!氏名検索 & "'" '--- A

   rs.FindFirst strRet

   If Not rs.NoMatch Then
      With Me
         .ID = rs!ID
         .氏名 = rs!氏名
         .住所 = rs!住所
         .電話番号 = rs!電話番号
         .メールアドレス = rs!メールアドレス
      End With
   End If

   rs.Close: Set rs = Nothing
   db.Close: Set db = Nothing

End Sub
解説
  1. FindFirstメソッドの検索条件を変数strRetに格納します。

動作確認

  1. フォームをビューモードで開きます。

  1. コンボボックスから氏名を選択し、[検索実行]ボタンをクリックします。
  2. 指定した条件のレコードが表示されます。

ページの先頭へ 前ページへ戻る


DAOを用いてレコード検索を行う方法 : VBAのTips解説


 

-Microsoft Access Club-

年額2,400円でドメインネームサーバーをご用意します。自宅サーバ構築時にご利用下さい。自宅サーバーは応用範囲が広いです。
年額2,400円でドメインネームサーバー。
自社・自宅サーバ構築時にご利用下さい。
やはり、自前サーバーは応用範囲が広いです。