• 締切済み

Acccessで2つのテーブルから1つのフォームをつくりたい

お世話になります。 初心者です。Access2002を使っています。 AとBの2つのテーブルから1つのフォームをつくることはできますか? フォームウィザードでAとBのテーブルのフィールドを指定してフォームを作成しようとすると、「A.Bテーブルのフィールドを選択しましたが、このうち1つまたは複数のテーブルが他と関連ありません...」というエラーメッセージが出ます。 解決策がありましたらよろしくお願いします。

みんなの回答

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.5

こんにちは。 まずアドバイスですが、 このような内容の質問では、テーブルの内容を詳しく書いたほうがいいですよ。 場合によっては回答の仕方が変わってきますし、的外れな回答になってしまうこともあります。 さて、回答ですが、 まずは2つのテーブルの関連付け(リレーションシップ)を行わなければなりません。 たとえば 「商品」テーブルに商品IDと商品名、商品の価格 「請求書」テーブルに請求書IDと顧客名、注文商品Noがあるとします。 この場合、2つのテーブルの間に関連性のある項目は 「商品ID」と「注文商品No」ですね。 この2つを結びつけること(リレーションシップ)によって、 請求書に商品名や商品価格を表示させることができるようになるのです。 と概略だけご説明しましたが、 すべて説明するとなると一冊の本がかけてしまうほどの内容となりますので、 書店などで書籍を参考にされるなどして、勉強されてみてください。 それから蛇足ですが、 テーブルから直接フォームを作るのではなく、 クエリから作成したほうがあとあと作業が楽です。

haasan99
質問者

お礼

お礼が遅くなってすみません。 アドバイスありがとうございました。 リレーションシップがなかなかうまくいきません。 参考書でもう少し勉強します。

  • PAPA0427
  • ベストアンサー率22% (559/2488)
回答No.4

2つのテーブルで結合できるようなキー項目が必要です。 たとえば、テーブルAが顧客情報だったとします。テーブルBが顧客の住所情報だったとします。 2つのテーブルに顧客IDがあれば、この顧客IDをクエリの中で線で結合させてあげれば、1つのフォーム上に表示する事が出来るようになります。 なにか2つのテーブルを結合できる項目はありませんか?よろしくご検討ください。

haasan99
質問者

お礼

お礼が遅くなってすみません。 アドバイスありがとうございました。 2つのテーブルで結合できるようなキー項目がありません。もう少ししらべてみます。

  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.3

手っ取り早いのは、2つのテーブルからクエリを作成して そのクエリのフォームを作成してみてください。 メイン・サブフォームを使う方法もあります。

haasan99
質問者

お礼

お礼が遅くなってすみません。 アドバイスありがとうございました。 クエリは作成できたのですが、レコードが反映されません?? もう少ししらべてみます。

  • pippy
  • ベストアンサー率50% (232/458)
回答No.2

二つのテーブル間に参照整合性があれば簡単に出来ます。 参照整合性はこの場で説明するのは大変ですので、投げやりなようで申し訳ありませんが、図解本などをお調べ頂くとよいと思います。

haasan99
質問者

お礼

お礼が遅くなってすみません。 アドバイスありがとうございました。 参照整合性を調べてみます。

  • kbannai
  • ベストアンサー率32% (88/268)
回答No.1

Accessは、完成度の高い便利なリレーショナル・データベースですから、複数のテーブルでリレーションシップでつないで、1つのクエリーを作り、フォームを作れば良いと思います。

haasan99
質問者

お礼

お礼が遅くなってすみません。 アドバイスありがとうございました。 リレーションシップでつないで、フォーム自体は作成できたのですが、レコードが反映されません?? もう少ししらべてみます。

関連するQ&A

  • アクセス2003で完成されたフォームに新たに別のテーブルのフィールドを追加したい

    アクセス2003を使っています。全く始めたばかりです。今までに2つのテーブル(テーブルAとテーブルB)からフィールドリストを出して,それなりに満足したフォームが出来上がりました。試行錯誤していくうちに,新しいテーブル(テーブルC)を作ってフィールドを増やそうと思いました。各テーブルの関連付けも行ったので,フィールドリストに反映されるのだろうと思ったのですが,テーブルAとBのリストしかでてきません。テーブルAにテーブルCのフィールドをコピーしようかとも思ったのですが,また,フォームのデザインを整えるのもたいへんかなと思っています。過去質問も見ましたが,近いものがありそうでなさそうで・・・

  • Access2007 フォームでの計算結果をテーブルに反映させるには?

    ビスタでAccess2007を使っています あるテーブルにA~Dまでのフィールドが設定されています。 フォームでフィールドA.Bは手入力して C.Dには計算式を設定して計算結果を表示させていますがテーブルに反映されません。 (フォームにはきちんど式通りの答えが表示されますがテーブルのフィールドC.Dは空っぽです。) 例 A・・・10,000 B・・・0.1 C・・・1,000(計算式 A*B) D・・・9,000(計算式 A-C) フォーム上で行った計算結果をテーブルに入力反映させるにはどうすればよいでしょうか? テーブルやフォームの作り方が悪いのか? 計算式の設定が悪いのか? なぜテーブルに反映しないのか理由がわかりません。 そもそもフォーム上での計算はテーブルには反映しないのか? だとすれば反映させるにはどうすればよいのでしょうか? テーブルのフィールドに計算式を設定することは出来るのでしょうか? 出来るとすればその方法は? 疑問だらけでどうすれば求める結果が得られるのかさっぱり解りません。 当方Access2007は初心者も同然ですのでわかりやすく解説して戴ければ幸いです。 よろしくご教授ください。

  • Accessのフォームとテーブルについて教えてください。

    Access2003を使用しています。 既存のフォームAにフィールド3個を増やしました。 フォームAはテーブル(1)と連動していました。 追加したフィールドはテーブル(6)のものです。 ところがフォーム上で追加フィールドに入力が出来なくなりました。3フィールドのうち、ひとつはコンボボックスです。表示はされますが確定ができません。 フォームAのSQLステートメントではテーブル(1)・(6)以外にテーブル(2)・(3)・(4)・(5)が結合されています。 フォームAからするとテーブル(2)・(3)・(4)・(5)のデータはIDの名称を見るための参照用です。 テーブル(6)は、追加フィールドのコンボボックスが参照用で、他の2追加フィールドは、フォームから入力してテーブル(6)に反映させたいものです。 テーブル(6)の画面では入力できます。 フォーム上からは入力できません。 設定が何か欠けているからでしょうか? 他の質問では2つのテーブルをひとつのフォームにする場合は、クエリを別に設けた方がいいとなっています。フォームが出来上がっているので、できればクエリを設けずに行いたいのですが、よくない方法でしょうか? 手順なども踏まえて教えていただけると助かります。 よろしくお願いいたします。

  • アクセスのテーブルのフィールド自動セット

    アクセスのテーブルAに、フィールドfA(1)、fA(2)、fA(3)があるとします。 このフィールドfA(1)のデータ型としてルックアップウィザードを選択し、参照先を別のテーブルB、登録するデータとしてはテーブルBのフィールドfB(1)を指定したとします。 ただし、ルックアップに表示するデータとしては、fB(1)、fB(2)、fB(3)の3つを指定します。 テーブルAに新規でレコード登録をする際、まずフィールドfA(1)にデータを入力するため、フィールドfA(1)の▼マークをクリックすると、テーブルBに登録されているレコードのfB(1)、fB(2)、fB(3)が全てリストアップされるはずです。 そこで、そのリストの中からある一つのfB(1)、fB(2)、fB(3)のデータのセットを選択すると、テーブルAのfA(1)、fA(2)、fA(3)に、その選択したfB(1)、fB(2)、fB(3)がそれぞれセットされるようにしたいのです。 フォームを使って、フォーカス喪失時のイベントを利用すればそのようなことができるのはわかるのですが、フォーム等を利用せず、テーブル及びクエリだけでこのようなことをしたいと思っています。 不可能でしょうか?

  • access2013 サブフォーム作成のエラー

    Access2013にてフォーム内にサブフォームウィザードを使って追加しようとします。 しかし、最終的に「フォームを作成できませんでした」とエラーがでます。 ■手順  (1)「既存のテーブル/クエリを選択」  (2)一つの指定テーブルからフィールドを選択※  (3)名前を指定して「完了」 ■不具合内容  上記の※でフィールドを選択する際に、  フィールドを9つまでは完成しますが、それ以上だとエラーがでます。 ■質問内容  サブフィールドを追加する際に、フィールドの数に制限はあるのでしょうか?  フィールドを14個指定したいのですが、解決策はあるのでしょうか? 内容に不足がありましたら申し訳ありません。 どなたかお教えいただけると幸いです。

  • access2007のフォームウィザードでフォームを作成できませんでした。

    winxp&access2007です。 メニューバーで「作成」→「その他のフォーム」→「フォームウィザード」でフォームウィザードを開始し、 フィールドの選択、レイアウトの指定などを行い「完了」ボタンを押すと、 「フォームを作成できませんでした。」というメッセージが出ます。 何故でしょうか?

  • ACCESSのフォームとテーブルの連携について

    ACCESSのフォームとテーブルの連携について 説明がややこしくて大変申し訳ないのですが、教えてください テーブルが1つあります。 そのテーブルを元にフォームが作成されています。 そおフォームの一つのフィールド((コンボボックス)→[テスト]フィールド名とします)でOK と NG と選択できるように値集合ソースを設定しています。 そしてここからが本題なのですが、 そのフォーム上では使用しない(見せたくない)フィールド([いろは]フィールド名とします。)がテーブルに1つあるのですが 例えばフォームの[テスト]に仮に OK と選択して保存したら、 テーブルの[いろは]に 快調 と自動反映させることは可能でしょうか?

  • アクセスでフォームのデータ(計算結果)がテーブルに反映されない

    アクセス初心者です、教えて下さい。 うまく説明できないのですが、エクセルで作成した売上表をアクセスで作り直そうと試みているのですが…。 簡単に説明すると、フィールドA,B,Cと3つあって、フォーム上でCはAとBの合計(C=[A]+[B])としました。フォーム上ではA,Bに値を入力するだけでCに結果が表示されるのですが、それがテーブルのCに反映されません。テーブルに計算結果を表示させるにはどうしたらいいのでしょうか?

  • アクセスのフォーム、コードを入れると名前が出るのはなぜ?

    アクセス初心者ですが、フォームを作成時、疑問に思って考えるほど混乱してしまいました。 例えば、 Aテーブル:日付、店コード、売上のフィールドを作る。(主キーなし) Bテーブル:店コード、店名(主キーは店コード) リレーションは店コード(B)→店コード(A)に結び、すべての整合性にチェック それぞれのテーブルに、数件のデータを入力 この状態で入力フォームをウィザードで作ったのです。 Aテーブルからすべてのフィールド、Bテーブルから生徒氏名を選び、ウィザード任せにフォームを作りました。 このとき、できたフォームで出席番号を入れると何もしないのに、自動的に生徒氏名が入ってしまいます。 人に聞くと当たり前でしょ、みたいに言われたのですが、なんとなくわかるようでわかりません。どうして自動的に入るのでしょうか?ふりがなの自動入力みたいな設定をしたというのならわかるのですが、何もしてないのに。 すみません、自分でも、リレーションとか整合性とかについて、あるいはまだフォームとテーブルの関係について、よくわかってないせいなのだろうとは思うのですが、そこの所も合わせ、どなたか、分かりやすく教えていただけますか?宜しくお願いします。

  • フォームの作り方 アクセス2000

    アクセス2000を使い始めた初心者です。 顧客群に関するテーブルAがすでにあります。 このテーブルは事情があって、フィールドを追加することはできません。 もうひとつのテーブルBを作って、こちらに情報を追加するためのフィールドをいくつか作ります。 やりたいことは、 入力用のフォームに、テーブルAの情報内容を表示させて、テーブルBの入力をしたいのです。 クエリを作ってリレーションを設定するのだろうと思うのですが、具体的に進め方がわかりません。 よろしくお願いします。

専門家に質問してみよう