2012-09-13 44 views
0

再一次,我停留在同一個數據庫上。這次,我創建了一個更新查詢,當按下按鈕時,該查詢將刪除表中每個零件的1個。但是當一個零件已經在0時,它會變成-1。我怎樣才能阻止這種情況發生?更新查詢中的SQL代碼

我用SQL實現這一目標,

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

回答

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 
+0

輝煌謝謝 –

+0

我是否可以創建另一個部分,使我能夠在該表中取出兩個物體,但仍然取出其他物體中的一個? –

+0

您可以使用類似於bluefeet提供的語法:UPDATE [ASM-00065 WIP] SET [當前庫存] = IIF(減去2的條件AND [當前庫存]> 1,[當前庫存] - 2,IIF ([當前股票]> 0,[當前股票] -1,[當前股票])); – tranceporter

0

您可以添加一個條件來篩選,你將更新行:

UPDATE [ASM-00065 WIP] SET [ASM-00065 WIP].[Current Stock] = [ASM-00065 WIP]![Current Stock]-1 WHERE [ASM-00065 WIP]![Current Stock] > 0; 
1

是MS-訪問您可以使用IIF()

UPDATE [ASM-00065 WIP] 
SET [Current Stock] 
    = IIF([Current Stock]>0, [Current Stock]-1, [Current Stock]); 
+0

有什麼辦法,我可以創建SQL代碼,甚至使用VBA通知用戶,一些記錄在他們按下按鈕時表格= 0。我想創建它,所以他們不能從表中刪除任何數據,如果一條或多條記錄= 0 –

+1

@MichaelMcWilliams您需要使用VBA來通知他們「OnClick」事件有記錄符合您的條件。你可以使用'MsgBox'來顯示註釋。 – Taryn

+1

我將在這裏使用VBA刺穿它。如果我有任何問題,生病發布在這裏 –