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

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



Seekメソッド

Seekメソッドとは、テーブルタイプのRecordsetオブジェクトに対して指定した条件を満たすレコードを検索するメソッドです。このメソッドを利用するには、検索するフィールドにインデックスを作成します。なお、ダイナセットタイプとスナップショットタイプのレコードセットではFind系のメソッドを用います。DAOでは、NoMatchプロパティを用いて一致したレコードが見つかったかどうかを調べることができます。ADOでは、BOFプロパティまたはEOFプロパティを用いて調べます。

  • 書式
[DAO]
recordset.Seek comparison, key1, key2...key13

[ADO]
recordset.Seek KeyValues, SeekOption
  • 引数

[DAO]

引数 意味 指定
recordset Recordset オブジェクトを表すオブジェクト変数を指定します 省略不可
comparison “<”、“<=”、“=”、“>=”、または “>” のいずれかを指定します 省略不可
key1, key2...key13 検索条件式を指定します 省略不可

[ADO]

引数 意味 指定
recordset Recordset オブジェクトを表すオブジェクト変数を指定します 省略不可
KeyValues インデックスに指定した列と照合する、1つまたは複数の値を指定します。複数の場合はArray関数を使用します 省略不可
SeekOption 検索する時の条件を指定します。以下の表を参照 省略可

定数 説明
adSeekFirstEQ 1 KeyValues と一致する最初のキーを検索します。 (既定値)
adSeekLastEQ 2 KeyValues と一致する最後のキーを検索します
adSeekAfterEQ 4 KeyValues と一致するキー、またはその直後のキーのどちらかを検索します
adSeekAfter 8 KeyValues と一致するキーの直後のキーを検索します
adSeekBeforeEQ 16 KeyValues と一致するキー、またはその直前のキーのどちらかを検索します
adSeekBefore 32 KeyValues と一致するキーの直前のキーを検索します

関連項目

CurrentDb(DAO)OpenRecordsetメソッド(DAO)

事例 ) 「成績簿」テーブルレコードを「生徒名」で検索する

「成績簿」テーブルレコードを「生徒名」で検索します。

  1. テーブルを作成します。
  2. ID、生徒名、総合成績フィールドを作成します。
  3. 連結フォームを作成します。
  4. ID、生徒名、総合成績テキストボックスを作成します。
  5. コンボボックスを作成します。
  6. 実行するコマンドボタンを作成します。

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

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

Private Sub 実行_Click()

   Dim db As DAO.Database
   Dim rs As DAO.Recordset
   Dim varRet As Variant
   Dim varMatch As Variant

   Set db = CurrentDb
   Set rs = db.OpenRecordset("成績簿", dbOpenTable)

   With rs
      .Index = "生徒名" '--- A
      .Seek "=", Me.生徒名検索
   End With

   If Not rs.NoMatch Then '--- B
      With Me
         .ID = rs!ID
         .生徒名 = rs!生徒名
         .総合成績 = rs!総合成績
      End With
   End If

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

End Sub
解説
  1. 「生徒名」フィールドにインデックス設定を事前に行う必要があります。
  2. 検索条件に合うレコードが見つかると、NoMatchプロパティはTrueを返します。
    この段階で検索が終了します。

動作確認

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

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

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


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


 

-Microsoft Access Club-

アメリカ合衆国やヨーロッパのデータセンターからcPanelレンタルサーバーをご提供します。お支払いは日本国内の銀行振込で...。1ヵ月契約からOKです。
アメリカ合衆国やヨーロッパからcPanelレンタルサーバー。
お支払いは日本国内の銀行振込。
最短契約期間は1ヵ月契約からOKです。