• ベストアンサー

アクセスでテーブル入力用のフォームを他のテーブルのレコードを参照しながら入力するには

こんにちわ アクセスでテーブルのレコードを作成するのに 他のテーブルのレコードを引っ張ってきて フォーム上で表示したいのですが うまくいきません たとえば、社員名テーブル(従業員番号と名前) 配属テーブル(従業員番号と営業所コード) 支社テーブル(支社名と営業所コードの上2桁) 営業所テーブル(営業所名と営業所コード)を作成しておきます 退職者が出るたびに 退職者テーブル用のフォームに 従業員番号を入力すると フォーム上にその人の名前・支社名・営業所名が表示され それを確認してから その他のデータをその同じフォームに 入力したいのです 今、試しに作ったのは テーブルに一度上書きしないとデータを引っ張ってこないの不便なのです よろしくお願いします

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

従業員番号・名前・営業所コード・支社名・営業所名を表示するクエリを作りそれを基にコンボボックスをフォーム内に作ります。 そのコンボボックスをコンボ1と名前を付けたとしてフォーム上の名前・営業所コード・支社名・営業所名の各フィールドにコンボボックスに表示される内容を出したい場合。 (従業員番号はコンボボックスを作る時に次のフィールドに保存するのところで従業員番号を指定しておいて) Private Sub コンボ1_AfterUpdate() 名前 = コンボ1.Column(1) 営業所コード = コンボ1.Column(2) 支社名 = コンボ1.Column(3) 営業所名 = コンボ1.Column(4) End Sub 上記の記述を更新後処理にすれば出来ます。 試してみてください。

その他の回答 (2)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

社員名テーブルを基に従業員番号・名前・営業所コード支社名・営業所名など必要な(表示させたいフィールド)を持たせたクエリを作り退職者テーブル用のフォームにそのクエリを基にコンボボックスを作ります。 そのコンボボックスから選択したレコードをフォームの各フィールドに表示すれば良いのではないでしょうか。 コンボボックスのイベントで更新後処理で出来ます。

futtan
質問者

お礼

早速のご回答、ありがとうございます コンボボックスのイベントで更新後処理で出来る とのことですが、 更新後処理ほどのように行うのでしょうか?

  • keikan
  • ベストアンサー率42% (75/176)
回答No.1

クエリーをうまく活用してください。 まず従業員番号を入力してできる、社員名テーブル、配属テーブル、支社テーブル、営業所テーブルを結合させたテーブル(クエリー)を作成してください。 それをもとに、そのクエリーを追加クエリーとして追加先を退職者テーブルにしてください。 こうすると従業員番号を入れただけで、退職者テーブルに必要なデータを自動的に追加できます。

futtan
質問者

お礼

ありがとうございます 各テーブルをつなぐクエリーをつくってみました フォームから入力し、テーブルを開けなおすと データをひぱってきます たぶん、 >そのクエリーを追加クエリーとして追加先を退職者テーブルにしてください。 >こうすると従業員番号を入れただけで、退職者テーブルに必要なデータを自動的に追加できます の部分で、どこか間違っているようです