2012-02-02 32 views
0

我在Access數據庫中有許多表。其中一個表稱爲tblCurrentSale,另一個稱爲TblDraughtStock交叉表減法與「where」子句

目前的銷售表具有以下佈局:

CurrSaleID| DraughtID| SpiritID| SoftDrinkID| BottleID| Item | SalePrice| 
22________|_________1|_________|____________|_________|_Clsbrg__|______2.70| 

等等

TblDraughtStock如下所示:

DraughtStockID | DraughtID | Item | Stock | MinLevelStock | 
1______________|_________1_|Clsbrg__|_5000__|___________500__| 

我需要一些VBA或SQL會減1從股票列TblDraughtStockdraughtID在兩個tblcurrentsaletblDraughtStock相同。

+0

您使用Access 2010嗎?如果不是,你是否通過表單控制數據? – Fionnuala 2012-02-02 14:10:34

+0

我正在使用access 2010.即時通訊使用表單,當按下按鈕完成銷售時,當前銷售表被複制到銷售總表中,當前銷售表被清空。我希望在清除表之前發生上述情況。 – 2012-02-02 14:13:19

回答

0

庫存控制傾斜變得複雜。數據宏可能是一種可能性,但您可能最好只是在執行復制和刪除操作的同一按鈕上運行一些SQL。非常粗略地說:

sSQL = "UPDATE TblDraughtStock t " _ 
    & "INNER JOIN tblCurrentSale c " _ 
    & "ON t.DraughtID = c.DraughtID " _ 
    & "SET t.Stock = t.Stock - 1" 

Set db = CurrentDB 
db.Execute sSQL, dbFailOnError 
+0

所以在Draft Stock Table中有許多飲料。我有卡爾斯堡一品脫,卡爾斯堡halp,養育等... 我可以使用你有什麼作爲一個框架有一個非常長的SQL語句,將涵蓋每種飲料(12種)每種飲料。從總數中減去0.5的一半 謝謝 – 2012-02-02 17:46:57

+2

真正長的SQL語句幾乎總是一個壞跡象。你應該做的是發佈實際數據和更詳細的記錄你想要發生的事情。 – Fionnuala 2012-02-02 18:09:04