プロが教える店舗&オフィスのセキュリティ対策術

Accessをデータベースにして練習中です。
テーブルが複数あり、デザイナで基本フォームを作ってあります。
参考書にルックアップフィールドの作成の仕方が載っていたのですが
わからなくなってしまったのでどなたか教えてください。
下のコードを実行すると、ルックアップフィールドが空白になってしまいます。
データセット名:業務DataSet
登録社員テーブル:社員ID、氏名、住所、電話の4列
成績テーブル:社員ID、成果、残業時間の3列
成績テーブルに対応したフォームをデザイナで作成。
社員IDは「社員IDComboBox」、ルックアップフィールドはツールボックスから作り、「氏名TextBox」にしました。
 ルックアップフィールドのTextBoxに社員IDに対応した氏名を表示したいと思っています。
 

Private Sub 社員IDComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 社員IDComboBox.SelectedIndexChanged
If 社員IDComboBox.Text = "" Then
Exit Sub
     End If
Dim dr As 業務DataSet._登録社員Row
dr = 業務DataSet._登録社員.FindBy社員ID(CType(社員IDComboBox.SelectedText, Integer))

If dr Is Nothing Then
氏名TextBox.Text = ""

Else
氏名TextBox.Text = dr.氏名
End If
End Sub

色々やっていたら何がおかしいのかわからなくなってしまいました。
すみませんが教えてください。
それと、ComboBoxに登録社員テーブルの社員IDの一覧を表示しようと思ったらどのようにすればよいのですか?

A 回答 (1件)

私がこのようなことをする際はコンボボックスのプロパティで



列数 = 2
列幅 = 2cm;5cm
リスト幅 = 7cm
値集合タイプ = テーブル/クエリ
値集合ソース = SELECT [登録社員テーブル].[氏名],[登録社員テーブル].[社員ID] FROM 登録社員テーブル
列連結 = 2

のように設定します。
コンボボックスを使用する際は氏名及びIDを見ることができます。
選択後は氏名だけが表示されます。
コンボボックスの値(.VALUE)には社員IDが格納されます。
検索を行いたい際は値集合ソースのSQLにWHERE句を付け足します。
列幅などは好きなように設定できます。
    • good
    • 0
この回答へのお礼

お礼が遅くなり、すみませんでした。
教えていただいたクエリを実行しました。
コードで書くよりスマートで楽な方法だったのでとても助かりました。
SQLの書き方をもっと勉強したいと思います。
回答ありがとうございました。
お礼が遅くなり、本当にすみませんでした。

お礼日時:2006/10/30 11:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!