• ベストアンサー

AccessVBAを使用して、DB内を検索する画面を作成したいのですが。

Accessのヴァージョンは2000以降です。 フォーム上で、テキストボックスに入力して、検索ボタンを押すと、検索結果が表示される物を作りたいのです。 SQLの知識はあるので、SQL文は記述できるのですが、どうすれば検索結果が表示されるのかわかりません。 検索ボタンをクリックしたときにどういう処理をするのか、また、検索結果画面はどのように作っておけばよいのか等、少しでも多くのご回答をいただきたいです。 本やサイトも色々見たのですが、見あたりませんでした。 そのようなサイトがありましたら是非教えていただけると助かります。 お忙しい中申し訳ありませんが、本当に困っています。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • onakagoo
  • ベストアンサー率45% (5/11)
回答No.3

VBAはやっぱり知っておいた方がよろしいかと思います。 と言っても、下記の例ではほんのちょっとだけですけど。 ほとんど中身はSQLです。 応用するにはさらに知らねばならないでしょう。 まず、テーブルは「テーブル1」と言う名前で項目「氏名」と「体重」だけ作ります。 フォームは「表形式」を選択し基になるテーブルに「テーブル1」を選択し作成してください。 フォーム名は「フォーム1」で保存してください。 できたフォーム1に「氏名選択」という名前でテキスト入力フィールドを作成してください。 さらに検索ボタンを作成し、「検索」と言う名前で保存。 プロパティ-の「クリック時」で下↓のボタンを押し「イベントプロシージャ」を選択。 右端の「・・・」を選択するとVBAを記述できる画面が出てきます。 そこに下記内容を記述 Private Sub 検索_Click() Forms![フォーム1].RecordSource = "SELECT * FROM [テーブル1] where forms![フォーム1]![氏名選択] = [テーブル1]![氏名]" End Sub

am_esew
質問者

お礼

お礼が遅れ申し訳ありません。 先が見えてきた気がします。 とても参考になりました。 本当にありがとうございます。

その他の回答 (2)

回答No.2

せっかくAccessを使っているのですから、 クエリを有効利用しましょう。 クエリで、絞込みたい項目のWhere条件の欄に、  [Forms]![フォーム名]![テキストボックス名] を記述します。 フォーム名、テキストボックス名は変更して ください。 あとは、フォーム上にテキストボックスと 適当なボタンを配置し、ボタンをクリック すると上記のクエリが動作するように設定 します。  ※ボタンを設置する際にウィザードが   立ち上がりますので、簡単に出来ます。 こった表示がしたいならこのクエリにフォームや レポートをかぶせたりすればOKではないかと 思います。

am_esew
質問者

お礼

お礼が遅れ申し訳ありません。 わかりやすいご回答ありがとうございます。 助かります。 お忙しい中、ありがとうございました。

  • coco1
  • ベストアンサー率25% (323/1260)
回答No.1

テキストで記述するのは非常に困難なんですけど フォームを一覧表でとりあえず作ります。 そして、ヘッダー部分にテキストボックスやボタンを配置します。 ボタンのイベントハンドラに me.filter = "name = *" & txt.kensaku.value & "*" me.filteron = true の様な形で記述してやると、検索(というか絞り込み)はできるはずです。 キーワード入力フォームと検索画面表示フォームが別の場合でも、検索画面側でキーワード入力フォームのValueを参照すれば同様の結果が得られます。 SQLでももちろんできますが、レコードセットの説明が面倒なので、Filterの方法を記述しました。

am_esew
質問者

お礼

お礼が遅れ申し訳ありません。 Filterという方法もあるのですね。 とても勉強になりました。 ありがとうございました。

関連するQ&A