0

もう一度、同じデータベースに行き詰まりました。今回は、ボタンが押されたときにテーブル内の各パーツを 1 つ削除する更新クエリを作成します。しかし、パーツがすでに 0 の場合、-1 になります。どうすればこれを防ぐことができますか?

これを実現するためにSQLを使用しました。

UPDATE [ASM-00065 WIP] 
SET [ASM-00065 WIP].[Current Stock] = [ASM-00065 WIP]![Current Stock]-1;
4

3 に答える 3

4

あなたの質問を間違って理解しているかもしれませんが、その列のそのテーブルのすべての行を更新し、それらから 1 を減算しますか? その場合、次を使用できます。

UPDATE [ASM-00065 WIP] 
SET [ASM-00065 WIP].[Current Stock] = [ASM-00065 WIP]![Current Stock]-1 
WHERE [ASM-00065 WIP].[Current Stock] > 0
于 2012-09-13T10:16:44.207 に答える
1

MS-Access は使用できますかIIF()

UPDATE [ASM-00065 WIP] 
SET [Current Stock] 
   = IIF([Current Stock]>0, [Current Stock]-1, [Current Stock]);
于 2012-09-13T10:18:34.673 に答える
0

条件を追加して、更新する行をフィルタリングできます。

UPDATE [ASM-00065 WIP] SET [ASM-00065 WIP].[Current Stock] = [ASM-00065 WIP]![Current Stock]-1 WHERE [ASM-00065 WIP]![Current Stock] > 0;
于 2012-09-13T10:16:52.580 に答える