2012-02-02 133 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