概要説明
単票フォームでは表示されているレコードは1件のみです。検索キーワードに含まれるレコードを探すて表示できれば便利です。 そこでヘッダ部に探したいテキストが含まれているレコードを探す機能を付けてみましょう。続けて探す機能も付けてみます。
作成手順
1.使用するフォーム
使用するフォームは次のようなものです。テーブルは[日記]の単票フォームで表示は[日付]と[日記]フィールドを表示している。

2.このフォームのヘッダ部に2つのコマンドボタンと、1つのテキストボックスを追加した。

いずれも非連結のものでる。
それらの名前は次のようにした。
①探すボタン:名前[cmd_sagasu]
②次を探すボタン:名前[cmd_tsugi]
③テキストボックス:名前[txt_sagasu]
3.機能
②のテキストボックスに日記データからさがしたい検索キーワードを入力し。 ①のボタンでキーワードを含むレコードを表示させる。さらに探したいい時は②のボタンで探して表示させる。
4.各ボタンに次のプロシージャを作成
(※コピー&ペーストで使えます)
①探すボタン:名前[cmd_sagasu]のプロシージャ
Private Sub cmd_sagasu_Click()
' DAOレコードセットを開く
Dim rs As DAO.Recordset
Set rs = Me.RecordsetClone
' テキストボックスに入れた語を含むレコードを探す
rs.FindFirst "日記 like '*" & Me.txt_sagasu & "*'"
If rs.NoMatch Then '見つからなかった時の処置
Beep
MsgBox "見つかりません"
Else
' 見つかった時はレコードセットと同じレコードを表示する
Me.Bookmark = rs.Bookmark
Me.日記.SetFocus
End If
rs.Close: Set rs = Nothing
End Sub
②次を探すボタン:名前[cmd_tsugi]
Private Sub cmd_tsugi_Click()
' DAOレコードセットを開く
Dim rs As DAO.Recordset
Set rs = Me.RecordsetClone
' 現在の表示レコードをレコードセットに合わせる
rs.Bookmark = Me.Bookmark
' テキストボックスに入れた語を含むレコードの次を探す
rs.FindNext "日記 like '*" & Me.txt_sagasu & "*'"
If rs.NoMatch Then '見つからなかった時の処置
Beep
MsgBox "最後まで検索しました"
Me.txt_sagasu.SetFocus
Me.txt_sagasu = ""
Else
' 見つかった時はレコードセットと同じレコードを表示する
Me.Bookmark = rs.Bookmark
Me.日記.SetFocus
End If
rs.Close: Set rs = Nothing
End Sub
実施結果

「病院」を検索語にした一件目の結果です。次を探してみましょう。

次の結果です。こうして次々に関係レコードが検索されて表示できます。
(この項終わり)