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

レコードを検索する - Seekメソッド : ADO入門講座



Seekメソッドは、Findメソッドと同じく指定した条件に一致するレコードを検索し ます。Findメソッドとの相違点は、検索するテーブルフィールドにインデックスが設定されていることが条件になります。

留意点
  • RecordsetオブジェクトのOpenメソッドの引数OptionにadCmdTabledirectを指定する必要があります。
  • 検索方法を事前に指定することができます。

Findメソッドの構文

Seekメソッドの構文は、以下のような組み合わせになります。

Recordsetオブジェクト + .(ドット) + Seekメソッド+ (半角) +
Keyvalues+ ,(カンマ) + Seekoption

項目 意味
Recordsetオブジェクト 開いているRecordsetオブジェクトです。
Keyvalues インデックスの各列と照合するための値を指定します。
Seekoption

インデックスの各列とそれに対応する KeyValues を比較するときの、比較の種類を SeekEnum 値で指定します

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

サンプルテーブルの作成

サンプルテーブルを以下のように作成します。テーブル名は、T_sampleテーブルです。

ID 売上日 社員名 性別 売上額
6 2004/01/23 橘修平 男性 52100
1 2004/07/29 草薙良子 女性 120310
4 2004/04/30 中村静子 女性 785100
9 2004/04/30 田中邦子 女性 4789210

テーブルのデザインビュー

テーブルのデザインビューは以下のようになっています。主キーは社員名フィールドに設定しています。

Seekメソッドを用いた検索方法

このプロシージャは、T_Sampleテーブルから社員名が「田中邦子」のレコードをSeekメソッドを用いて求め、メッセージボックスに表示します。

Sub ADO_Seek()

    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim vardat As Variant
    Dim strmsg As String
    Set cn = CurrentProject.Connection
    Set rs = New ADODB.Recordset
    
    rs.Open "T_Sample", cn, adOpenKeyset, adLockOptimistic, adCmdTableDirect
    
    vardat = InputBox("検索する社員名を入力して下さい。") ' --- A
    If vardat = "" Then Exit Sub ' --- B
    rs.Index = "PrimaryKey"
    rs.Seek vardat, adSeekFirstEQ
    
    If rs.EOF Then
        strmsg = "該当データがありません。" ' --- B
    Else
        strmsg = strmsg & rs!売上日 & " : " & rs!社員名 & " : " & _
					rs!性別 & " : " & rs!売上額 & "円"
    End If
    
    MsgBox strmsg
    
    rs.Close: Set rs = Nothing
    cn.Close: Set cn = Nothing

End Sub
解説
  1. InputBoxを用いてユーザーに検索語を入力させます。
  2. ユーザーが検索後を入力しなかった場合は、以降の処理をキャンセルします。
  3. EOFプロパティがTrueになった場合、つまり最後まで検索が終了した場合はメッセージを表示させます。
実行結果
  1. プロシージャを実行します。
  2. InpuBoxが開きますので、田中邦子と入力します。

  1. 以下の検索が実施され、メッセージボックスが開きます。

関連ページ

2005/06/25

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


レコードを検索する - Findメソッド : ADO入門講座


 

-Microsoft Access Club-

アメリカ合衆国の大手データセンターのアダルト対応可能なリーズナブル価格設定の専用・共有レンタルサーバーをご提供しています。
アメリカ合衆国の大手データセンターにサーバー機器を設置。
アダルト対応可能な専用・共有レンタルサーバーを提供。