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ボタンを選んだ後
実行結果
(この項終わり)