• ベストアンサー

【ACCESS】リストボックスに抽出してからテキストボックスに代入するには?

ACCESS2003、初心者です。 医療事務のデータベースを作っています。 予約フォーム(frm予防接種予約)を作っていますが、次の(1),(2)の作業がうまくできなくて困っています。 (1)リストボックスへの抽出(検索ボタンを押すまではリストボックスの中は空の状態) frm予防接種予約のフォームで非連結テキストボックスに生年月日を入力して、検索ボタンを押す ↓ tbl患者個人票テーブルの生年月日と一致するレコード(氏名や住所)をリストボックスに表示させたい。 (2)表示されたリストボックスの中のレコードをクリックすると、そのレコードが氏名や住所に代入される。 一連の作業をfrm予防接種予約フォーム上で行いたいのですが、どのようにしたら良いのでしょうか?

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

  • ベストアンサー
  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.1

(1) は、リストボックスではなく、サブフォームを使ったほうが簡単かも。  リストボックスの場合は、値集合ソースをSQL文で作成し、テキストボックスの  更新後で、RowSource プロパティに代入し、Requery をかけてやればいいかと。  VBA Or マクロが必要ですね。   (2) は、リストボックスを使うのなら、Column プロパティが使えると  思います。 > そのレコードが氏名や住所に代入される。  きちんと正規化されているのなら、氏名・住所等を代入する必要はないです。  患者ID?のような値を入れてやれば、あとはクエリで対応できますので。  

kanames
質問者

お礼

返答ありがとうございます。 (1)は、クエリとRequeryでうまくいきました! コードは、 Private Sub 代入検索_Click() Me.代入リスト.Requery End Sub です。 (代入リストはテキストボックス、代入検索はコマンドボタンです) (2)は、Columnでやってうまくいきました! ちなみに、(2)では事情によりクエリを使いたくなかったのでVBAで代入しました。 コードは、 Private Sub 代入リスト_Click() Me.診察券 = 代入リスト.Column(0) Me.氏名 = 代入リスト.Column(1) Me.住所 = 代入リスト.Column(2) End Sub です。 ありがとうございました。 おかげで助かりました。

関連するQ&A