Microsoft Access Club >DAO入門講座 >このページ >次頁 < 前項  サイト内検索
 

カレントレコードの検索_スナップ、ダイナセットタイプ : DAO入門講座



テーブルレコードの検索を行うには、Seekメソッドを用い ますが、ダイナットタイプやスナップショットタイプのレコードセットでは、Find系メソッドを用います。

  • テーブルセットタイプ : Seekメソッド
  • ダイナセットタイプ : Find系メソッド
  • スナップショットタイプ : Find系メソッド
留意事項
  • Seekメソッドのようにインデックスの事前設定、カレントインデックスの指定は必要ありません。

Find系メソッドの種類

Find系メソッドには、下記の種類があります。

メソッド名 働き
FindFirst Recordsetオブジェクトの先頭から最後のレコードに向かって検索する
FindLast Recordsetオブジェクトの最後から先頭のレコードに向かって検索する
FindNext Recordsetオブジェクトのカレントレコードから最後のレコードに向かって検索する
indPrevious Recordsetオブジェクトのカレントレコードから先頭のレコードに向かって検索する
  • これらメソッドは、開いているRecordsetオブジェクトのレコードに対してのみ有効です。

フォーム上に検索結果を表示する

サンプルとして、コンボボックスで選択した取引先名の入力済みデータを表示させるテクニックを紹介します。

  1. まず、取引状況テーブルを基にしたフォームを作成します。
  2. 通常であれば、フォームのレコードソースに「取引状況テーブル」からクエリを作成するのですが、今回はレコードソース欄を空白のままにします。(下図を参照)

  1. 基になるテーブルデータは下記のとおりです。
ID 納品日 取引先名 請求月 請求額
1 2003/12/15 コーポレーションAkira製作所 2003年12月 ¥1,255,454
2 2004/01/04 松村物産商事(株) 2004年01月 ¥2,226,437
3 2004/01/12 あきら立花工務店(株) 2004年01月 ¥326,370
4 2003/12/28 松村物産商事(株) 2003年01月 ¥3,340,990
5 2004/01/20 佐藤園芸クリエイション(株) 2004年01月 ¥1,256,200
6 2004/01/05 港証券販売コーポレーショ 2004年01月 ¥4,120,000
  1. 単票式のフォームを作成します。
  2. フッターにテキストボックスとコマンドボタンを配置します。

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

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

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 ' --- B
    
    If Not rs.NoMatch Then '--- C
        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. 検索条件を変数strRetに格納させます。
  2. FindFirstメソッドを用いて、レコードセツトの先頭から検索を開始します。
  3. NoMatchプロパティの値がFalseであれば、以下の処理へ進みます。
留意点

今回、検索条件がテキスト型ですから、下記のように文字列の前後をシングルクォーテーション(')で囲む必要があります。これを忘れると実行時エラーが発生します。

  • 例 1  rs.FindFirst "取引先名 = ' " & Me!取引先検索 & " ' "

また、検索条件が連続番号のように数字であるなら、下記のように簡潔に記述できます。

  • 例 2  rs.FindFirst "取引先ID = " & Me!取引先ID

条件設定でエラーが連発する場合、このような基本的なミスが考えられます。(下図参照)

実行結果

  • コンボボックスから、あきら立花工務店(株)を選択します。

  • [検索実行]ボタンをクリックすると、入力済みデータがフォーム上に表示されます。

 

2004/05/29

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

 


カレントレコードの検索_スナップ、ダイナセットタイプ : DAO入門講座


 

-Microsoft Access Club-

動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。データセンター設置場所はアメリカ合衆国です。: 動画サーバードットコム
動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。
データセンター設置場所はアメリカ合衆国です。
100Mbps〜1Gbpsまで対応できます。