いつもお世話になります。
Accessで下記の様にクエリを作成しましたが、”このレコードセットは更新できません”と出てしまいます。
■テーブル1
・顧客ID(主キー)
・顧客名
・住所
・TEL
■テーブル2
・顧客ID
・取引ID(主キー)
・請求金額
■クエリ1(集計クエリ)
・顧客ID グループ
・請求金額合計: Sum(請求金額) 合計
■クエリ2(実際に使用するクエリ)
・顧客ID(テーブル1)
・顧客名(テーブル1)
・住所(テーブル1)
・TEL(テーブル1)
・請求金額合計(クエリ1)
このクエリ2を開いて更新しようとしても、”このレコードセットは更新できません”と左下に表示されて更新できません。
・請求金額合計(クエリ1)を除けば問題なく更新できます。
ですが1顧客に対して通算で幾ら請求をしたかとその顧客のデータを同一クエリで表示・更新したいので、意味をなさなくなってしまいます。
どなかた良い方法をご教授下さいませ。
No.1
- 回答日時:
集計したクエリを更新データに結合しているから無理だと思います。
テーブル1とテーブル2を結んで、顧客IDを重複表示する(請求金額は合計しない)か、
クエリ1をテーブル3として作成してからテーブル1とテーブル3を結びましょう。
考えてみるとわかると思いますが
請求金額を更新した場合、
どの元データを更新すれば良いのか判断できませんよね。
だから項目に請求金額を含むと更新できません。
クエリ1も更新できないですよね。
リレーションシップ(顧客ID同士を結ぶ)を使えば、重複データの片方を更新しても全てのレコードが更新されます。
No.2ベストアンサー
- 回答日時:
> 1顧客に対して通算で幾ら請求をしたかとその顧客のデータを
> 同一クエリで表示・更新したい
「『請求合計金額』は参照のみ、それ以外は更新可」ということ
でしたら、『請求合計金額』を、「定義域集計関数を使用した
演算フィールド」としてしまう、というのはいかがでしょうか。
これであれば、クエリ1を使用する場合に比べ、動作が遅くは
なりますが、テーブル1の各フィールドの編集は可能になります。
■クエリ2
※使用するのはテーブル1のみ、クエリ1は使用せず※
・顧客ID(テーブル1)
・顧客名(テーブル1)
・住所(テーブル1)
・TEL(テーブル1)
・請求金額合計(以下の式を指定)
『フィールド:』欄:DSum("請求金額", "テーブル2", "[顧客ID]=" & [顧客ID])
『テーブル:』欄: (空白にします)
注意:
万が一、顧客IDのデータ型が数値型ではなくテキスト型だった場合は、
以下の式としてください:
『フィールド:』欄:DSum("[請求金額]", "テーブル2", "[顧客ID]='" & [顧客ID] & "'")
上記の「DSum」などの「定義域集計関数」の詳細については、
Accessのヘルプを参照してください。
なお、同関数の第3引数については、以下の過去のQ&Aを
参考として挙げておきます(No.4):
http://oshiete.goo.ne.jp/qa/6442713.html
この回答への補足
ご回答ありがとうございます。
上記を参考に入力したのですが、
パラメーターの入力
顧客ID
と表示されてしまいます。
顧客ID毎に基本情報と請求金額の合計が出て、基本情報の編集ができるクエリを作りたいのですが・・・
お手数おかけして申し訳ございませんが、ご教授頂けないでしょうか。
No.3
- 回答日時:
No.2です。
> 上記を参考に入力したのですが、
>
> パラメーターの入力
> 顧客ID
>
> と表示されてしまいます。
これは、DSum関数の第3引数の右辺側に指定した『顧客ID』と
いう名前のフィールドが、クエリの元になっているテーブル(今回の
例では『テーブル1』テーブル)に存在しない場合に発生します。
(ちなみに、左辺側が存在しないフィールド名だった場合は、クエリ
のデータシートビューでのエラー表示になります)
ですので、『テーブル1』の各フィールドの名前と、第3引数の右辺
のフィールド名を、もう一度確認してみてください。
第3引数の右辺に正しいフィールド名が指定されれば、ご希望の
『顧客ID毎に基本情報と請求金額の合計が出て、基本情報の
編集ができるクエリ』になるはずです。
見直す際の観点としては、
・『顧客』と『ID』の間などに、スペースやアンダーバーが入ったり
していないか
・誤変換や誤字がないか
などになるかと思います。
(一旦、元となるテーブルをデザインビューで開いて、当該フィールド
の名前をCopyしてから、当該クエリをデザインビューで開いて
上記関数の右辺に貼り付け、とするのもいいかもしれません)
※もしもクエリの「SQLビュー」を使ったことがあるようでしたら、
デザインビューで当該フィールドを追加した後、SQLビューに
切り替え、そこに表示されたフィールド名をCopy、が最も確実。
SQLビューは、デザインビューを表示した状態で、
・Access2003以前なら、メニューで「表示(V)→SQL ビュー(Q)」で、
・Access2007なら、『デザイン』リボンの左端の『結果』内にある
『表示』ボタンの下にある『▼』をクリックして「SQL ビュー」選択
で、表示できます。
(Access2010は使用したことがありませんが、多分2007と同様)
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
なお、前回の回答で、本文中の式で「請求金額合計:」の記述が
漏れていました(正しくはNo.2の添付画像の通り)。
お詫びの上、訂正させていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- その他(データベース) accessについて 2 2022/05/31 16:58
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Access クエリ 同一テーブル内 複数フィールドの同時集計のやり方について 1 2022/05/18 19:01
- その他(データベース) accessでのフォームの連携について 2 2022/06/14 00:45
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- Access(アクセス) Access DAOのExecuteメソッドのオプション(RecordsetOptionEnum)に 1 2022/09/19 07:34
- PHP 【PHP/MySQL】コード上で生成したクエリを基に集計クエリを作りたい 1 2022/07/28 15:06
- Java リレーションエンティティクラスとは何ですか? 2 2023/02/10 00:02
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
アクセス レコードセットを更新できません
その他(データベース)
-
ACCESSのフォームからデータの追加ができない
その他(データベース)
-
Access レコードを追加できません。テーブル’○○’の結合キーがレコードセットにありません。
Access(アクセス)
-
-
4
Accessレコードの追加や変更が出来ません。
その他(データベース)
-
5
Access サブフォームでの選択行の取得
その他(データベース)
-
6
Accessで、フォームからフォームへ値を引き継ぐやり方
Access(アクセス)
-
7
Access フォーム上でコンボボックスの値を更新したときにレコードセットは更新できないと表示される
その他(データベース)
-
8
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
-
9
[Access]帳票フォームにて連続する非連結コントロールに個々の値を入れるには
Access(アクセス)
-
10
Accessで、複数のテーブルで随時、レコードを増やすには…
Access(アクセス)
-
11
新規レコード行を非表示にしたい
Access(アクセス)
-
12
Accessのサブフォームから値を参照する方法について
その他(データベース)
-
13
Access2000 フォーム表示位置が変わる
Word(ワード)
-
14
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
15
ACCESSの集計クエリで3件ある場合の[先頭][最後]が正しく抽出できないんです。
その他(データベース)
-
16
アクセスで新しいレコードの追加ができません
Access(アクセス)
-
17
ACCESSレポートの1ページだけ
Access(アクセス)
-
18
ACCESS VBAの実行時エラーなんですが
PowerPoint(パワーポイント)
-
19
アクセスVBAのMe!と[ ]
Access(アクセス)
-
20
ACCESS フォームをそのまま印刷について
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データベースの1要素に複数デー...
-
ワードでの単純作業の効率化に...
-
Access フォームのデータがテー...
-
Access VBAでクエリーのレコー...
-
Accessフォームからのデータ登...
-
ACCESS2003 Aアクロバットを介...
-
Accessデータベースで行と列を...
-
文字化け、記号の含まれるフィ...
-
Accessで移動累計
-
ACCESSで重複データをまとめた...
-
テーブル1 2 3 の結合
-
Access IF文でテーブルに存在し...
-
ACCESS で マクロの中でフィ...
-
Excel 2019 のピボットテーブル...
-
エクセルVBAで5行目からオート...
-
アクセスクエリの計算
-
「直需」の意味を教えてください
-
Oracle 2つのDate型の値の差を...
-
Access テキスト型に対する指定...
-
Accessでテーブル名やクエリ名...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access VBAでクエリーのレコー...
-
Access IF文でテーブルに存在し...
-
データベースの1要素に複数デー...
-
ワードでの単純作業の効率化に...
-
Access フォームのデータがテー...
-
ACCESS で マクロの中でフィ...
-
Accessデータベースで行と列を...
-
ワードで保存するファイル名の...
-
別のDBからテーブルをコピーす...
-
ADOでレコードを閉じるタイミン...
-
Accessで名寄せグループの関係...
-
シングルクォーテーションとダ...
-
Access 縦(行)のデータを横(列)...
-
顧客IDを入力すると顧客名や住...
-
Access クエリ このレコードセ...
-
(ACCESS)連番取得について
-
Access2000 単票フォーム上の...
-
Access 既に開いているフォー...
-
文字化け、記号の含まれるフィ...
-
Access2013VBA 複数のテーブル...
おすすめ情報