0

私は Access 2010 を使用しており、しばらくの間この問題を解決しようとしています。私のクエリは次のとおりで、「操作は更新可能なクエリを使用する必要があります」というエラーが表示されます。

UPDATE ServiceDetRules SET DuplicateOf = (SELECT ID FROM ServiceDetRulesDuplicates WHERE ServiceDetRules.[ServiceID] = ServiceDetRulesDuplicates.[ServiceID])
WHERE (SELECT NumberOfDups from ServiceDetRulesDuplicates) IS NOT NULL;

何かご意見は?

4

2 に答える 2

0

まず、Access(ACE、Jetなど)はSET、SQL-92標準で許可されている場合でも、句のサブクエリをサポートしていません。詳細については、このスレッドを参照してください(明確でない場合、Accessは独自の構文を使用するように強制し、それに応じてステートメントUPDATE..JOIN..SETを書き直す必要があります)。UPDATE

次に、WHEREサブクエリがスカラー値ではなく行を返すため、句が疑わしいように見えます。sugegstedの修正は次のとおりです。

WHERE EXISTS (SELECT NumberOfDups FROM ServiceDetRulesDuplicates);


次のようなものを試してください:

UPDATE ServiceDetRules 
       INNER JOIN ServiceDetRulesDuplicates 
          ON ServiceDetRules.[ServiceID] = ServiceDetRulesDuplicates.[ServiceID]    
   SET ServiceDetRules.[DuplicateOf] = ServiceDetRulesDuplicates.[ServiceID];
于 2011-06-20T08:51:21.807 に答える
0

デザイン タブで、クエリの種類を UPDATE に変更します。

于 2011-06-20T03:43:16.583 に答える