- ベストアンサー
Accessでテーブルのデータを検索してフォームに表示させる方法を教えてください
現在、アクセスでテーブルを作成しました。テーブルは患者テーブルという名前でデータはID、名前、年齢です。フォームにはID、名前、年齢のフィールドを作成しました。IDのフィールドに、ID番号を入力し患者テーブル テーブルのID番号と一致すれば、名前と年齢を自動的に表示させるモジュールを作成したいのですが、どのように作成すればいいでしょうか?ご教示頂ければ幸いです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> テーブルのID番号と一致すれば、名前と年齢を自動的に表示させるモジュールを作成したい サンプルモジュールを作成してみました。 非連結フォームです。フォーム上のコントロール名は、txtID・txt名前・txt年齢です。 Private Sub txtID_AfterUpdate() Dim Cn As ADODB.Connection Dim Rs As ADODB.Recordset Set Cn = CurrentProject.Connection Set Rs = New ADODB.Recordset Rs.Open "[テーブル名]", Cn, adOpenKeyset, adLockOptimistic Rs.Find "[ID] = " & Me![txtID] If Rs.EOF Then MsgBox "レコードが見つかりません。ID=" & Me![txtID] Else Me![txt名前] = Rs![名前] Me![txt年齢] = Rs![年齢] End If Rs.Close: Set Rs = Nothing Cn.Close: Set Cn = Nothing End Sub 連結フォームでしたら、ご自分でモジュールを作成する必要はありません。コンボボックスウィザードを使用し、検索用コンボボックスを作成すればよろしいかと思います。 ご参考になれば幸いです。
その他の回答 (2)
- GreatDragon
- ベストアンサー率46% (186/402)
ANo.2 の GreatDragon です。 > 複数のテーブルからIDと一致したデータを呼び出す事は可能でしょうか? そのフォームを非連結フォームにし、ANo.2 のようなプログラムを呼び出し対象のテーブル分実行します。(プログラムは1つに纏めておきます。) > フォームを作成する時に一つしかテーブルを選択する事ができません。 リレーションシップで予めクエリを作成し、これを基にフォームを作成(レコードソースでこのクエリを選択)すればよいです。
- Gin_F
- ベストアンサー率63% (286/453)
非連結のフォームでってことですか? とりあえず、質問をそのまま解釈すると。 名前 =DLookup("名前","患者テーブル","ID=" & [ID]) コントロールソースに上記のようにすれば可能です。 VBAであれば、代入式になるだけですね。(第3引数がちょっぴり変わりますけど。)
補足
説明不足ですいませんでした。連結フォームで作成していました。コンボボックスウィザードの機能で作成する事ができました。ありがとうございました。そこで追加で質問なのですが、複数のテーブルからIDと一致したデータを呼び出す事は可能でしょうか?フォームを作成する時に一つしかテーブルを選択する事ができません。