Accessによるデータ処理

このQ&Aのポイント
  • Accessを使用して、テーブル1とテーブル2を結合し、テーブル3のデータを作成したいです。
  • テーブル2に新しいID102を追加し、ID列を一本化し、年度別の金額が表示されるようにしたいです。
  • どなたかに教えてもらえないでしょうか?
回答を見る
  • ベストアンサー

Accessによるデータ処理

テーブル1とテーブル2を結合して、テーブル3のようなデータにしたいと考えています、ユニオンクエリ等試みましたがうまく作ることができませんでした。テーブル2で登場する新たなID102を加え、ID列を一本化した上で年度別の金額が表示されるようにしたいです。 どなたがご教示いただけませんでしょうか。 よろしくお願いいたします。  テーブル1  ID  2019年購入額 100    5,000 101   6,000 テーブル2 ID 2020年購入額 101    3,000 102   2,000 テーブル3  ID 2019年購入額  2020年購入額 100   5,000  101   6,000 3,000 102 2,000

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

  • ベストアンサー
  • cicibo
  • ベストアンサー率34% (190/557)
回答No.1

ユニオンクエリは、行を合算するクエリなので、違います。 (1)テーブル3を空で作成します。 (2)テーブル3の全レコードを削除するクエリを作成します。 (3)テーブル1の行をテーブル3にInsertするInsertクエリを作成します。 (4)テーブル2とテーブル3をidで結合して、テーブル2の購入額をUPDATEするクエリを作成します。 (5)テーブル2とテーブル3をidで結合して、Insertできる(つまりテーブル3にない)行をInsertするクエリを作成します。 (6)(2)から(5)のクエリを連続して動かすマクロを作成します。 (6)で作成したマクロを実行すれば、テーブル3がリフレッシュされます。 つまり、クエリでは表現ができないので、上記の(1)~(5)で、求めたいデータをテーブル3に作成する方法です。 参考にしてください。

sasukehana123
質問者

お礼

抽出条件をIS NULLで設定したらできました。 ありがとうございました。

sasukehana123
質問者

補足

cicibo様 ご回答ありがとうございました。 (4)まではうまくいったのですが、(5)まで行うと101の3,000が二重で入ってしまいました。 テーブル3にないレコードのみをinsertする方法について、もう少し詳しくお教えいただけませんでしょうか。 テーブル3(4)終了時  ID 2019年購入額  2020年購入額 100   5,000  101   6,000 3,000 テーブル3(5)終了時  ID 2019年購入額  2020年購入額 100   5,000  101   6,000 3,000 101           3,000 102 2,000

関連するQ&A

  • データ型の変更

    アクセス2003を使っています。 ユニオンクエリを使って複数のクエリを結合しました。 その後、SQLで結合したクエリをテーブルにする為、 SELECT Qユニオンクエリ.* INTO T統合 FROM Qユニオンクエリ; という、SQLを使ってテーブルにしました。 できあがったテーブルのデータ型が希望通りになっていないので、 データ型を変更して、常にそのデータ型で処理したいので保存しておきたいと思います。 しかし、データを入れる度に、前述のユニオンクエリを使い、再びそのクエリをテーブルにするという処理を行います。 その際にデータ型がまた変わってしまいます。 対処方法はあるでしょうか? よろしくお願いします。

  • accessで複合キーの処理が遅い

    あるマスタデータと明細データがありキーとなる列が2つ(2列)あります マスタデータのテーブルのキー列のA列、B列を主キーとして定義し 明細データのテーブルのキー列のA列は重複ありのインデックス B列も重複ありのインデックスとしてそれぞれ設定しています その2つのキーをクエリで結合して更新する更新クエリを作成しているのですが データ量が多くなってくると非常に反応が遅くなります 同じデータ量で 2つのキー列の値をあるひとつの列に結合した値を格納しその結合列で 更新クエリを作成したところ高速に処理が動作しましたので 複合キーだった場合の処理速度が遅いのだと推測しました (※C列にA列 & B列 の結合した値を格納してC列をキーにするという事です) accessで複合キーの更新クエリを作成する場合、高速に動作させるには なにか工夫が必要なのでしょうか? アドバイス下さい 上記のように複数のキーをひとつの列に結合する工夫で早くはなったのですが・・・ 余分なデータを格納する事になるので非常に容量が大きくなってしまう問題があります

  • ACCESS ユニオンクエリはデータ編集ができない

    教えてください。初心者なので基本的なことで大変お恥ずかしいのですが・・・。 ACCESSでユニオンクエリを作成し、検索の結果としてフォーム上にデータが閲覧できるシステムを作りました。ユニオンクエリの元となる、テーブルは4つあります。 しかし、フォーム上からも、作成したクエリのデータシートビューからもデータの編集ができません。 クエリというのは、編集ができないという認識でいいのでしょうか。 データを編集するにはテーブルとしてインポートしなおして、作業するしかないのでしょうか? 何か良い方法があれば教えて下さい。

  • Accessで複数(3以上)のテーブルを一気に結合する方法

    Accessで、列の項目が全く同一の、複数(3つ以上)のテーブル(例えばA、B、C)を一気に単純結合する方法を教えて下さい。ユニオンクエリの構文でも結構です。よろしくお願いします。

  • Accessのクエリについて質問です。

    Accessのクエリについて質問です。 T_元データ、T_書換データという2つのテーブルがあります。 それぞれのテーブルは顧客番号、金額1、金額2、金額3というフィールドがあります。 テーブル生成クエリで、以下のような新規テーブルを生成したいと思います。 ---------------------------------------------------------------- 【1】顧客番号が一致した場合、T_元データの金額1、金額2、金額3を T_書換データの金額1、金額2、金額3に書き換えたい。 【2】顧客番号一致しない場合、T_元データの金額1、金額2、金額3を をのまま表示させたい。 ---------------------------------------------------------------- 【1】については正常に書き換えができていますが、 顧客番号が一致しない場合は、金額1、金額2、金額3がブランクになってしまいます。 【2】のような動きにするにはどうしたらよいのでしょうか? ちなみに、結合プロパティは以下のように設定しています。 左のテーブル名:T_元データ  右のテーブル名:T_書換データ 左の列見出し:顧客番号    右の列見出し:顧客番号 2を選択 ('T_元データ'の全レコードと'T_書換データ'の同じ結合フィールドのレコードだけを含め る。) よろしくお願いいたします。

  • Accessで2つのテーブルからデータを持ってきたい

    Accessにtable A, Table Bがあるとします。Table AにはID,kudamono,yasai列があるとします。Table BにはID,その他列があります。Table AからID,kudamono,yasaiの列、Table Bからはその他列を抜き出して、結合させてExcelに書き出したいと思っています。Excelへ吐き出す部分は置いておいて、sqlでどのように書いたらよいでしょうか?ID列はTable A, Table Bで同じものです。

  • Accessで多くのExcelファイルをリンクしてテーブルを作ろうとするととエラーが出ます

    Access2007で、複数のExcelファイルをリンクテーブルとして参照し、 UNIONで結合して1つのテーブルにまとめ、様々な処理をしています。 リンクするExcelファイルの数がだんだん増えてきて、 50個になったところでエラーが出るようになりました。 ユニオンクエリは正常に開くことができるのですが、 テーブル作成クエリで「クエリが複雑すぎます」と表示され、 テーブルが作成できません。 ユニオンクエリでは全てのリンクテーブルをUNIONで繋いでいます。 テーブル作成クエリはユニオンクエリをSELECT...INTOでテーブルにしているだけです。 参照するExcelファイルは今後も増えていって最終的には120個くらいまで 増やるかもしれないということで、 どうしていいかわからず困っています。 何かいい方法をご存知の方、教えていただけないでしょうか。

  • アクセスの処理方法

    ご存知の方がいらしたらご教示ください。 宜しくお願い致します。 質問1 オラクルのテーブルとODBC接続している。(T_ABC) オラクルのテーブルをコピーしてAcc内にデータを持たせる(T_ABC2)と容量が大きくなりすぎ、 処理が遅くなる。 今現在はODBC接続しており、処理をさせるとNWの問題?か何かで これも処理が遅く何とか処理を早められる方法があって欲しい。 Accにテーブルのコピーを作るのは、 select intoを使用している。 質問2 ユニオンクエリは、 元となるテーブルが別々でないと駄目なのか? 同じテーブルならどうしたら良いか?

  • 選択クエリ データの編集が不可能は条件は?

    選択クエリでもテーブルのデータを編集できる場合と出来ない場合があるのですが どういった場合に値の変更や編集ができないのでしょうか? 原因を探っているのですが、知識もないくせに複雑にしてしまいよくわかりません。 他のテーブルと結合すると値の変更ができなくなるのでしょうか? ユニオンクエリでは編集が不可能なことは調べてわかりました。 よろしくお願いします。

  • アクセスのデータを取り込みたい

    アクセスのデータを取り込みたい アクセスのクエリも理解できない、超初心者です。 db1.mdbのテーブル1のA列B列のデータだけをdb2.mdbのテーブル2に取り込みたいのですが、やり方が分かりません。先輩に聞いたら、マクロを使えば簡単だよ、あとは自分で調べなと言われ、まったく見当がつきません。 どなたかご教授願います。よろしくお願いいたします。

専門家に質問してみよう