• ベストアンサー

更新クエリの設定方法を教えてください

お世話になっております。 添付画像にありますように、3月の単月テーブルにある数値を集計テーブルの 3月に反映させたいのですが、以下の点について教えてください。 1.更新クエリが最も効率的な方法なのか教えてください。 2.更新クエリを使う場合、デザインビューでどのように設定すればよいのか  教えてください。 3.更新クエリ以外の方法があれば教えてください。 よろしくお願いします。

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

  • ベストアンサー
回答No.1

通常、ご質問のような事はしません。 同じデータが複数のテーブルにあることで ファイルサイズが大きくなってしまう。 一つのテーブルだけ一部のデータを更新し、 残りのテーブルの更新を行わなかった場合にデータの整合性が取れなくなる。 (顧客番号110の商品番号10の3月のデータがテーブルAとテーブルBで異なるけどどっちが正しいの?) などよろしくありません。 一般的?には テーブル1 顧客番号|商品番号| 年月|金額    10|   10|201401| 50    11|   10|201401| 20    10|   10|201402| 30    10|   20|201401| 50    11|   20|201401| 30    10|   30|201402| 10 のようなテーブル構造にしてクロス集計クエリで 顧客番号|商品番号|合計金額|201401|201402    10|   10|   80|  50|  30    10|   20|   50|  50|    10|   30|   10|   |  10    11|   10|   20|  20|    11|   20|   30|  30| とすると思いますけど? ※レイアウトが崩れてしまっていたらメモ帳にでもコピペしてフォントを等幅にしてください。 Access2002の場合のでちょっと古いですが今どき(2010など)でも一緒です。 https://www.microsoft.com/japan/office/previous/xp/suminaka/access/sousa/1/sousa1_20_1_honbun.htm ご参考まで。

KASHIYADE
質問者

お礼

お世話になっております。 ご丁寧な説明、ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ACCESS 更新クエリについて

    更新クエリで更新したいのですが、クロス集計クエリの数値を元にテーブルを更新することは出来ないようで、困っています。 なぜそのようなことをしているかと申しますと、 商品品目_個数_コード(主キー) のようにフィールドを持っているのですが、 印刷に関しては品目ごとに印刷したい、ということで 一度クロス集計クエリ(TRANSFORM)で りんご_ばなな_ぶどう_コード(主キー) 数値_数値_数値_数値 のような並びにして、テーブル作成クエリでテーブルを作成し そのテーブルをレポートに使用しています。 数値などが変わった場合その作成したテーブルの数値を 作成元になったクロス集計クエリで更新したいのですが、出来なくて困っています。 テーブル作成クエリで上書きすると、古いデータが消えてしまうため 何か良い方法はないかと思っています。 回答のほどお願いします。

  • クエリでのデータ更新について

    ACCESS2000で更新クエリの質問です。 フィールドの値の合計、カウントなどの集計値を計算するクエリから取り出された値を、更新クエリでデータを更新したいのですが、 「更新可能なクエリでありません」とエラーがでます。 LOOPする方法もあるのですが、できればクエリで一括更新したいと思います。 どなたかご教授お願いします。 やりたいことは下記のとおりです。Aテーブルを集計しBテーブルの個数にAテーブルの個数の合計値を更新する。 <Aテーブル> コード  個数 1     1 1     2 1     3 2     4 2     4 3     5 3     6 <Bテーブル> コード  個数 1      2      3    ↓↓↓更新後 <結果:Bテーブル>   コード  個数 1     6 2     8 3     11

  • 更新不可能のクエリの条件を教えてください。

    他の人が作ったアクセスのファイルなのですが クエリを開いてデータを編集しようとすると 音が鳴り、左下のステータスバー(?)に 「このレコードセットは更新できません」 となってしまいます。 そのクエリをデザインビューで見ると 二つのテーブルが矢印で繋がっており、 月: Month(T【家計簿】明細!取引日) のような式で作られたフォールドが10個くらいあります。 二つのテーブルそれぞれに主キーはありますが 主キー同士は繋がっていません。 他の人が作った時は2003で作り 私は2007で開いています。 どこをどういじれば、更新可能なクエリになるのか分からないので 更新不可能のクエリの条件を教えてください。 変にいじって戻せなくなりたくないので^^; アドバイスよろしくお願いします。

  • access クエリで集計した数値を別クエリで使いたい

    access2003で2000ファイル形式で以下のものを作っています。 テーブル「A」(フィールドは登録番号(主キー)、 書名) 「B」(登録番号(主キー)、 書名) がある。Aの「登録番号の最大値」(100とする)をクエリ(クエリ名「集計クエリ」)で集計して得た。 テーブルBの登録番号(1~30とする)を更新クエリで(1+100 ~ 30+100)に更新したい。そこでデザインビューで登録番号フィールド(テーブルB)の「レコードの更新」欄にビルダーで「[B]![登録番号]+[集計クエリ]![登録番号の最大値]」と入力して実行したら 実行できなかった。(仕方ないので「[B]![登録番号]+100」として実行したら更新できた。)今後もあるので「集計クエリ」で得た値を直接呼んで、更新クエリを実行したいのだが・・・。 わかりにくい質問で恐縮です。ご理解頂けたならば、ご教授ください。

  • 更新不可能なクエリに対して更新クエリを実行する方法

    複数のテーブルをつないでクエリ(Q1)を作成し、 そのクエリを基に更新クエリを作成したら、 画面のように「更新可能なクエリである事が必要です」 となってしまったのですが、 このクエリ(Q1)の条件で更新クエリをしたい場合、 どういう方法があるのでしょうか? 現在更新不可能なクエリに対して更新クエリを実行する方法はありますか?

  • ACCESSの更新クエリー活用方法の件(続き)

    ID 商品 価格 備考  フラグ という列をもつテーブルがあるとします。 こちらは、 テーブル名:商品名 としています。 これにたいして選択クエリーを使って、特定の商品だけを クエリーで引っ張ってきています。 クエリー名:抽出 このクエリー名:抽出で引っ張ってきたデータにあるフラグの列に「更新クエリー」で 1の数値を入れたいのですが、 それは更新クエリーでどのようにSQLをせっていするかたちになりますか。 更新クエリー名:更新 update 抽出元のテーブル set 任意のセル = 1 where 抽出の条件 update 商品名 set フラグ = 1 where 抽出 ; 上記方法、更新クエリーで上記SQLを設定しても、クエリー実行時に、 バラメータを要求され、結果 全てのテーブル列に1がふられます。 式が違うのでしょうか。あくまでもクエリーで抽出されたものだけに 1をふりたいのですが。 http://okwave.jp/qa/q7278856.html > http://okwave.jp/qa/q7277790.html の#1・#2です。 #1に「選択クエリは作れますか?」と書いたのをほったらかしにして、続きの質問とは・・・。 具体的なテーブル名・列名を提示してないので、イメージで書いてあるんだから 回答を丸写ししちゃダメでしょ。 > #1です。ごめんなさい。もっとシンプルに考えれば良いです。 デザインビューにしてSQLビューに切るかえる。 select 列 from 抽出元のテーブル where 抽出の条件 ; みたいなデータです。 where の前を書き換えます。 select 列 from 抽出元のテーブル の部分を update 抽出元のテーブル set 任意のセル = 1 としてください。

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

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

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

    よろしくお願いします。 集計したクエリを元に更新クエリを実行すると、更新できません。 やりたい作業としては、売上データテーブルのレコード数を得意先ごとにカウントして、得意先マスタテーブルのレコード件数フィールドを更新する作業です。 追加クエリで一度テーブルに追加してから、テーブル同士で更新も考えたんですが、レコード数が多いためにDBのサイズが爆発的に増えて廃案になりました。 何か良い方法があれば教えてください。

  • ACCESS更新クエリー活用方法について

    ACCESSでテーブルから抽出したクエリーで表示された特定の列だけに 1という数字をふりたいのですが、 update 抽出元のテーブル set 任意のセル = 1 where クエリー名 上記方法、更新クエリーで上記SQLを設定しても、クエリー実行時に、 バラメータを要求され、結果 全てのテーブル列に1がふられます。 式が違うのでしょうか。あくまでもクエリーで抽出されたものだけに 1をふりたいのですが。 デザインビューにしてSQLビューに切るかえる。 select 列 from 抽出元のテーブル where 抽出の条件 ; みたいなデータです。 where の前を書き換えます。 select 列 from 抽出元のテーブル の部分を update 抽出元のテーブル set 任意のセル = 1 としてください。 最終的には以下のイメージ update 抽出元のテーブル set 任意のセル = 1 where 抽出の条件 ;

  • アクセスのクエリで表示されないのは?

     いつもお世話になっています   クエリ作成したときに、テーブルのほうではきちんと表示されているのに、クエリでデザインビューにしたときに、 このようなマークがでるのはどうしてでしょうか? ♯NUM! と0   非常に困っています 教えてください。