Access2007 フォームでの検索について
お世話になります。
accessはあまり使わないので、自己流でどうにか作っている状況で
わからなければネットで調べているのですが、
どうしても自力で解決できないので、よろしければ教えて下さい。
テーブル名、T_機器データ一覧
フォーム名、F_機器登録
F_機器登録に入力したものがT_機器データ一覧に保存されます。
すでに登録しているか調べる為に、このフォームのヘッダーに
「検索窓」と「検索」ボタンと「次へ検索」ボタンという名前で設置し、
「検索窓」に入力した文字を、T_機器データ一覧から探して、もしあれば
詳細部分の入力用のボックスに表示されるフォームにしました。
T_機器データ一覧のフィールドは番号や機器名等々で20個ほどあり、
1つの検索窓ですべてのフィールドのデータを検索させたく、
某サイト様に載っていた方法を使わせて頂きました。
(番号や機器名という特定フィールドの情報ではなく、とにかく
「検索窓」に入力した文字がT_機器データ一覧にあるかどうかで調べたいです。)
-----------------
↓「検索」ボタン
-----------------
Private Sub 検索_Click()
On Error Resume Next
Dim v
Me.番号.SetFocus
v = Me.検索窓
Me.検索窓 = Null
DoCmd.FindRecord v, acAnywhere, False, acSearchAll, , acAll, True
Me.検索窓 = v
End Sub
-------------------
↓「次へ検索」ボタン
-------------------
Private Sub 次へ検索_Click()
On Error Resume Next
Dim v
Screen.PreviousControl.SetFocus
Screen.ActiveControl.SelStart = 255
v = Me.検索窓
Me.検索窓 = Null
DoCmd.FindRecord v, acAnywhere, False, acDown, , acAll, False
Me.検索窓 = v
End Sub
-------------------
これで思った通りに検索してくれるのですが、
検索した文字が無かった場合に、"見つかりません"という様な
メッセージBOXを表示させたいのですが、方法を見つけられませんでした・・。
Microsoftのサイトに、
「FindRecordメソッドは、成功または失敗を示す値を返しません。」
とあり、FindRecordを使わずに別の方法がないかと探したのですが、
特定のフィールドのみから「検索窓」に入力した文字を探す方法はあるのですが、
1つの「検索窓」へ入力したものをテーブル上のすべてのデータから
検索させる方法がわかりませんでした。
書き方がおかしな所があるかもしれません。
その場合は大変申し訳ありません・・。
どうかよろしくお願い申し上げます。
お礼
お礼が遅くなり申し訳ありません。 諸事情でまだ実際自分のWEBページで確認はしてないのですが ローカルで確認したところ改善されたようです。 迅速な回答ありがとうございました。