ACCESSの更新クエリで、番号フィールドに入っている値の最大値を使って、番号が0のレコードに、最大値+1の連番を振るためのSQLを教えてください。
例えば、以下のように番号フィールドに対して連番を振りたいです。
テーブル名:個人
ID | 番号 | 名前 |
---|---|---|
1 | 1000 | A |
2 | 1001 | B |
3 | 0 | C |
4 | 0 | D |
↓更新クエリの実行結果
ID | 番号 | 名前 |
---|---|---|
1 | 1000 | A |
2 | 1001 | B |
3 | 1002 | C |
4 | 1003 | D |
前提
番号フィールドは数値型です。
IDフィールドはオートナンバーです。
試したこと1
UPDATE 個人 SET [個人].番号 = DMax("番号","個人") + 1 WHERE [個人].番号 <= 0;
を実行したところ、以下のように更新されてしまいました。
ID | 番号 | 名前 |
---|---|---|
1 | 1000 | A |
2 | 1001 | B |
3 | 1002 | C |
4 | 1002 | D |
試したこと2
UPDATE 個人 SET [個人].番号 = (SELECT DMax("番号","個人")+1 FROM [個人]) WHERE [個人].番号 <= 0;
を実行したところ、「更新可能なクエリである必要があります」と表示されてしまいました。。。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/05/18 01:53