• ベストアンサー
  • 暇なときにでも

Accessでテーブルのデータを検索してフォームに表示させる方法を教えてください

  • 質問No.1607655
  • 閲覧数9265
  • ありがとう数5
  • 回答数3

お礼率 1% (54/3354)

現在、アクセスでテーブルを作成しました。テーブルは患者テーブルという名前でデータはID、名前、年齢です。フォームにはID、名前、年齢のフィールドを作成しました。IDのフィールドに、ID番号を入力し患者テーブル
テーブルのID番号と一致すれば、名前と年齢を自動的に表示させるモジュールを作成したいのですが、どのように作成すればいいでしょうか?ご教示頂ければ幸いです。

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

  • 回答No.2
  • ベストアンサー

ベストアンサー率 46% (185/397)

> テーブルの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


連結フォームでしたら、ご自分でモジュールを作成する必要はありません。コンボボックスウィザードを使用し、検索用コンボボックスを作成すればよろしいかと思います。


ご参考になれば幸いです。
補足コメント
jones0901

お礼率 1% (54/3354)

説明不足ですいませんでした。連結フォームで作成していました。コンボボックスウィザードの機能で作成する事ができました。ありがとうございました。そこで追加で質問なのですが、複数のテーブルからIDと一致したデータを呼び出す事は可能でしょうか?フォームを作成する時に一つしかテーブルを選択する事ができません。
投稿日時:2005/08/27 03:07

その他の回答 (全2件)

  • 回答No.3

ベストアンサー率 46% (185/397)

ANo.2 の GreatDragon です。

> 複数のテーブルからIDと一致したデータを呼び出す事は可能でしょうか?
そのフォームを非連結フォームにし、ANo.2 のようなプログラムを呼び出し対象のテーブル分実行します。(プログラムは1つに纏めておきます。)

> フォームを作成する時に一つしかテーブルを選択する事ができません。
リレーションシップで予めクエリを作成し、これを基にフォームを作成(レコードソースでこのクエリを選択)すればよいです。
  • 回答No.1

ベストアンサー率 63% (286/453)

非連結のフォームでってことですか?
とりあえず、質問をそのまま解釈すると。

名前
=DLookup("名前","患者テーブル","ID=" & [ID])

コントロールソースに上記のようにすれば可能です。
VBAであれば、代入式になるだけですね。(第3引数がちょっぴり変わりますけど。)
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ