アクセスVBAの部屋

VBA Homeへ戻る

DoCmdでレコードの検索

DoCmdオブジェクトはマクロのアクションをVBAで実行するオブジェクトです。 DoCmdオブジェクトにあるメソッドを使用して、いろんなマクロアクションを実行することができます。 DoCmd.FindRecord メソッドは、Visual Basic で" FindRecord アクション"を実行します。

(書式)

FindRecord (FindWhat、Match、MatchCase、Search、SearchAsFormatted、OnlyCurrentField、FindFirst)
(引数)

引数説明
FindWhat検索する数値・文字列
Matchフィールド全体を検索(acEntire)、フィールドの一部分を検索(acAnywhere)、フィールドの先頭を検索(acStart)、既定値は acEntire
MatchCaseバリアント型 大文字と小文字を区別するかどうか。Trueなら区別する、Falseなら区別しない。既定値は (False)
Search検索する方向。カレントレコードより下のレコードを検索(acDown)、すべてのレコードを検索(acSearchAll)、カレントレコードより上のレコードを検索(acUp)、既定値は acSearchAll
SearchAsFormatted書式化された形式でデータを検索するには (True)、データベースに保存されている形式でデータを検索するには(False)を使います。既定値 (False)。
OnlyCurrentField検索の対象をすべてのフィールドとする(acAll)か、カレント フィールドのみ(acCurrent)とするか、既定値は acCurrent
FindFirst最初のレコードから検索を開始するには(True)、レコードから検索を開始するには(False)、既定値(True)

(使用例)

検索の「氏名」フィールドで「田」の付くレコードを検索するプロシージャです。フォームを開いた状態で行います

Private Sub 検索_Click()
 '氏名フィールドに移ります
 DoCmd.GoToControl "氏名"
 '「田」の付く氏名を検索します。一部が一致のacAnywhereを指定しています
 DoCmd.FindRecord "田", acAnywhere
 '繰り返し処理を使って最後まで検索します
 Do
 Dim check As Integer
 check = MsgBox("次を検索しますか?", vbOKCancel)
 Select Case check
 Case 1 'OKボタンを選んだとき次を検索します
 DoCmd.FindNext
 Case 2 'Cancelボタンを選んだときは終了します
 Exit Do
 End Select
 Loop
End Sub

(実行結果)

実行結果

OKボタンを選んだ後

実行結果

(この項終わり)