目次
万能の検索フィールド
こんにちは。伊川(@naonaoke)です。
最強の検索フォームの簡易版になるのでしょうか?
1つの検索フィールドを万能であればいいと思いませんか?
これは、ご視聴者さまからの質問になります。
ご視聴者様からのコメント
2ヶ月前から伊川さんの動画を観てvbaを始めました。
それまでは自分には無理だと諦めていましたがお陰様で今後も続けられそうです。
ご回答ありがとうございました 明日会社で試してみるのが楽しみです。
それまでは自分には無理だと諦めていましたがお陰様で今後も続けられそうです。
ご回答ありがとうございました 明日会社で試してみるのが楽しみです。
問題提起
(株)IKAWAの阿久 世子男(アク セスオ)は、上司から下記のような依頼を受けました。データベースをすべて検索できるフィールドが欲しい。どのように、作成するのがいいのだろうか?
解決策
回答
・メンテナンスを考えて、ワイルドカードを使って検索フィールドを万能にする。
検索フィールドを万能にする
色々なことをWEB上で検索しましたが、今回紹介する方法がベストです。
あえて難しいコードは紹介しません。
一応サンプルファイルには、フォームを2つ用意しておきます。
検索フィールドを万能にする 作成手順その1 データベース確認
上のようなデータベースがあります。
名前、電話番号、会社名の3つのフィールドを1つの検索ボックスで検索をします。
検索フィールドを万能にする 作成手順その1 クエリを作成する
検索値というフィールドを作成します。
この検索値をワイルドカードで検索します。
検索フィールドを万能にする 作成手順その3 検索フォームを作成する
Private Sub コマンド19_Click() DoCmd.ApplyFilter , "検索値 Like '*" & Me!検索 & "*'" End Sub
findnextは、上の記事を参照してください。
Private Sub コマンド36_Click() Dim myRS As Recordset Set myRS = Me.RecordsetClone myRS.Bookmark = Me.Bookmark myRS.FindNext "検索値 Like '*" & Me!検索 & "*'" If myRS.NoMatch Then MsgBox "最後まで検索しました。" Else Me.Bookmark = myRS.Bookmark End If myRS.Close Set myRS = Nothing End Sub
ここがポイント
ここがポイント
今回紹介した方法は、インチキのような方法です。もっと正当な方法があるかもしれませんが、メンテナンスを重視しました。ワイルドカードは使いこなすと便利です。
まとめ
今回のまとめ
ワイルドカードは、ACCESSを使うまで全然知りませんでした。文字抽出で困ったら、ワイルドカードを使ってみましょう。
今回のサンプルファイルは、No106です。
毎日の業務が、3時間短縮できます
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。