我正在使用MS Access 2007.我有一个名为qryUPDATESTOCKS
的查询,它根据表顺序的数量减少表产品的库存。
查询:
UPDATE tblPRODUCTS SET tblPRODUCTS.Stock = tblPRODUCTS.Stock-tblORDER.Quantity
WHERE tblORDER.ProductID=tblPRODUCTS.ProductID;
要在保存订单时运行此查询,我在运行查询的保存按钮中添加了一个操作OpenQuery
。
但是当我点击保存订单按钮时,会出现一个对话框,显示“输入参数值”。如何防止它弹出?
答案 0 :(得分:0)
您需要在VBA中运行Action Query,例如
Private Sub orderSaveButtonName_Click()
Dim totAvailable As Long
totAvailable = Nz(DSum("Stock", "tblPRODUCTS", "tblPRODUCTS.ProductID = '" & _
Me.ProductID & "'"), 0)
CurrentDB.Execute "UPDATE tblProducts SET Stock = " & totAvailable - Me.Quantity & _
" WHERE tblPRODUCTS.ProductID = '" & Me.ProductID & "'"
End Sub
或如果您想在Query中执行此操作,则需要传递订单号并使用SubQuery来获取要带走的项目数。这可能很复杂,使用VBA是直接的解决方案。