• 締切済み

アクセスのテーブル間で同じ値を入力したい

アクセスでテーブル間で同じ値を入力したいのですが、出来ないのでしょうか? 例 テーブルA 氏名 年齢 住所 テーブルB 氏名 趣味 特技 のようなテーブル間で氏名は同じ値を入力し、その他は違う値を入力したいのです。更にテーブルA又はBのどちらで入力をしても反映されるようにしたいのですが、やり方を教えて下さい。宜しくお願いします。

みんなの回答

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

リレーションシップを張る。 メニューのツール→リレーションシップで表示される画面で対象のテーブル(テーブルA 、テーブルB)を選択し、クエリーを作成するときのように氏名同士を紐付けてください。 紐付けたときに出る画面で、参照整合性にチェックをいれ、フィールドの連鎖更新にもチェックを入れてください。

hakohako
質問者

お礼

ありがとうございます。 試して見ます。

  • souta_n
  • ベストアンサー率33% (79/234)
回答No.1

DAO(データアクセスオブジェクト)を使用したVBAコードを「登録」ボタンのクリック時イベントか何かに作成して、複数テーブルの指定フィールドにレコード追加という方法がありますが・・・ でも普通今の場合ならテーブルは1つにして (テーブル) 氏名 年齢 住所 趣味 特技 というフィールド構成にして、必要に応じてクエリーを作成して (クエリーA) 氏名 年齢 住所 クエリーB 氏名 趣味 特技 とすると思うのですが、なにかそうすると問題があるのでしょうか?

hakohako
質問者

お礼

回答有り難うございます。 テーブルを一にしたいのですが、フィールドの数が50~60程度必要なので出来れば、テーブルを分けてつくりたいのです。駄目でしょうか?

関連するQ&A

  • accessのテーブル設計について

    超初心者で、超初歩的な質問になりますので優しく教えてください・・・ accessのテーブル設計について教えてください。 Excelで管理していた社員台帳が退職者含めると500人ほどに増えてきたので、社員の管理ソフトを作るように言われ必死でaccessを勉強し頑張っているところです。 そして、もともとのマスタなどはエクセルから拾っているのですがどうしてもそのまま入れることができないようなものが出てきています。 それが住所歴や昇給歴などのその個人によって複数あったりなかったりするものです。 Excel管理だったので 社員CD  氏名  昇給日   基本給    年齢給 123    A   2018/10/1 350000   50000          2018/4/1  355000    52000 124    B   2018/10/1 360000   65000          2018/4/1  355000    52000 ・ ・ ・ のようにずらーっと並んでいます。 この時、テーブルの設計はどのようにしたらいいでしょうか? 社員CDと氏名のテーブルを作成するのはわかるのですが、昇給額のようなものはどのようにテーブルを作り、どのように他のテーブルとつなげていいのかわかりません・・・ どなたかお力を貸して下さるとうれしいです。  

  • 複数のテーブルから複数条件で新規テーブルへ抽出するには?

    こんにちわ。 Windows2000、Access2000という環境下で、 住所録の統合をしようとしています。 簡単な構成は、前任者が、グループ関連会社別に住所録のmdbを作っており、各テーブルのフィールドで主要なものは、「通し番号(各mdbごと)」「氏名」「会社名」「住所」です。 ここで、最終的にテーブルを一つにまとめれば完了としたいところなのですが、 2002年夏の時点での住所録A.mdb 2003年冬の時点での住所録B.mdb 2003年春の時点での住所録C.mdb とあり、それぞれにBの時点での新規入力・(住所等の)更新、Cの時点での新規入力・更新があるのです。 BはAを元に作られており、CはBを元に作られています。 ダブっている部分があるのです。 そこで、AとBを比較してAの中で「氏名」、「会社名」が同じもの以外と、Bのデータを新しいDBのテーブルへ、 新しくできたDBのテーブルとCのテーブルとを比較して、「氏名」「会社名」が同じものは、既存のレコードを消去してCのデータを追加するということをやりたいのです。 つまり、BやCでの更新・新規入力をうまく反映させた形の住所録にしたいのです。 Access自体の使い方に不慣れなもので、この作業がAccessのクエリ等の組み合わせでできるのか、それともSQLやVBAを駆使しないと無理なのかの判断もつきません。 どなたか参考になりそうな操作やSiteを知っていましたら、 教えてください。 よろしくお願いします。

  • アクセスのテーブルでコードを入力したら名前が出るようにしたい

    アクセス初心者です。 アクセスのテーブルで、コードナンバー(例:01)を入力したら隣のフィールドに自動でそのコードに対する値(例:東京)を表示させたいと思っています。 コードとそれに対応する値(例:01 東京・02 名古屋)というようなテーブルは作ってあります。 クエリやフォームではできるようなのですが、テーブルでそのような事はできないのでしょうか・・・。 宜しくお願い致します。

  • エクセルのデータをアクセスのテーブルに移動入力する

    エクセルのデータをアクセスのテーブルに移動入力するVBA フォルダAにおいて、a1.xlsxというファイルがあり、 そのsheet1のセル(a,1)=1 A1が1 とします その値をアクセスのデータベース(これもフォルダAにあります)  b.accdbのテーブル1の フィールド1に入力したいときの エクセルマクロのVBAを御教示いただけると助かります さらに続けて フォルダAにおいて、a2.xlsxというファイルがあり、 そのsheet1のセル(a,1)=2 A1が2 とします その値をアクセスのデータベース上記と同じ  b.accdbのテーブル1の フィールド1に追加で入力したいときの エクセルマクロのVBA 以上わかると助かります よろしくお願いします win10 office365

  • テーブルの結合?

    accessのテーブル2つを1つのテーブルにする方法を教えていただけないでしょうか。 《テーブルA》 氏名,住所,電話番号,・・・・ 《テーブルA》 氏名,健康保険番号,雇用保険番号,・・・・ 氏名は、テーブルAとテーブルBで一致しています。 とりあえず、1個のテーブルにしてしまいたいのですが。

  • Access フィールドに入力した値を、同じテーブルの別のフィールドにコピーしたい。

    Accessについて質問させていただきます。 フィールドに入力した値が、同じテーブルの別のフィールドに自動的に入力され、あとでその別フィールドを書き換えても最初に入力したフィールドに反映しないような仕組みを作りたいのですが、やり方が判りません。 初歩的な質問で申し訳ないのですが、ご存知の方がおられましたら、お教えください。

  • 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は初心者も同然ですのでわかりやすく解説して戴ければ幸いです。 よろしくご教授ください。

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

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

  • Accessのテーブルへのリンク

    いま、ASPのDBとして使っているAccessのファイル A.mdbがあります その中の一つのテーブルを別のAccessファイル B.mdbにリンクして、参照したいと思っています。 しかし、B.mdbからリンクするときに インポートすると、A.mdbの変更が反映されず、 リンクすると、B.mdbで変更したものがA.mdbにも反映されて困っています. やりたいことはB.mdbから安全に(変更なしで)A.mdbのテーブルを 閲覧したいのです. ・A.mdbの変更をB.mdbに反映したい ・B.mdbのテーブルの変更はA.mdbに影響がない と言うことです. どうかお力添えを よろしくお願いします.

  • テーブル間の更新クエリにおいて

    Access2010で入力フォームを作成しています。 一時データとしてテーブルAを連結サブフォームとして編集します。保存ボタンをクリックするとメインのテーブルB(Aとフィールド構成は同じ)へA、Bのフィールド間で値が異なる場合、上書き保存をするという更新クエリを用意しています。 質問はテーブルAでフォーム上、オプショングループのラジオボタン(項目はテキスト型 値リストは0と1)に設定した項目が初期値のnullから入力したデータがメインのテーブルBに更新できないので困ってます。 連結フォームなので、テーブルAに値が入っており且つBと値が異なるのはデータビューで確認しています。ただ更新クエリでの選択(データビュー)に載ってこない。 この項目がテーブルBに反映されるのは予めインポートで0もしくは1が入力されていた状態から変更した場合と他の項目も合わせて値に変更があった場合のみでした。 クエリの抽出条件はテーブルA.項目<>テーブルB.項目としています。他の項目もor条件で同じ設定にしています。切り分けのため、このオプショングループの項目だけを変更した場合のクエリにしても反映はされませんでした。 考慮すべき点あればご教示ください。 よろしくお願いいたします。 どうかお助けくださいませm(__)m