4

アクセスの結合を使用してテーブルを更新したい - 2007

UPDATE TABLE1 A INNER JOIN (SELECT ACCODE, SUM(AMOUNT) AS SUM_AMOUNT 
FROM TABLE2 GROUP BY ACCODE) B ON A.ACCODE = B.ACCODE
SET A.TRIAL = A.TRIAL + SUM_AMOUNT

それは私にエラーを与える

操作は更新可能なクエリを使用する必要があります

以下のクエリを試しましたが、エラーはありません

UPDATE TABLE1 A INNER JOIN TABLE2 B ON A.ACCODE = B.ACCODE
SET A.TRIAL = A.TRIAL + SUM_AMOUNT

最初のクエリの問題点を見つけるのを手伝ってください

4

4 に答える 4

7

Access がクエリを更新不可として扱う理由は、 subquery によるものだと思いますGROUP BY。を使用して、更新可能なクエリを作成できるはずですDSum

UPDATE TABLE1 AS a
SET a.TRIAL = a.TRIAL
    + DSum("AMOUNT", "TABLE2", "ACCODE=" & a.ACCODE)

ACCODEが数値データ型ではなくテキストの場合は、DSum式の値を引用符で囲みます。

UPDATE TABLE1 AS a
SET a.TRIAL = a.TRIAL
    + DSum("AMOUNT", "TABLE2", "ACCODE='" & a.ACCODE & "'")
于 2013-04-19T06:00:31.113 に答える
1

この問題が発生したばかりで、テーブルの権限が原因でした。リンクされたテーブルのコピーを作成して更新クエリをテストしましたが、このエラー メッセージが表示され続けました。クエリは問題ないと確信していたので(単純な更新でした)、実際のテーブルで実行しましたが、エラーは発生しませんでした。将来これに出くわす他の人のためにこれを追加したかっただけです!

于 2013-12-18T19:35:22.930 に答える
0

このエラーは、別の PC にあるデータベースにアクセスしているときにも発生します。そのため、フォルダのセキュリティタブから書き込み権限を付与し、共有権限オプションで書き込み権限も付与してください。私の場合、これはうまくいきました

于 2013-10-10T12:19:56.850 に答える