如何使用Access中另一个表中的特定记录进行更新查询?

时间:2013-06-20 22:23:32

标签: ms-access

我正在使用Access 2010,我想知道如何使用另一个表中的信息更新一个表中的记录(但是,我还想指定我想要使用的另一个表中的哪个记录)。我有两张桌子(产品和销售)。我需要做的是,当我在销售表单上注册新的销售(指定销售的单位)时,我想在Products表中折扣从该产品的可用单位销售的单位。我读到我需要使用Update Query,并执行以下操作:

Field: Available units
Table: Products
Update to: [Products].[Available units] - [Sales].[Sold units]

Field: Code
Table: Products
Update to: 
Criteria: [Insert code]

这两个表与Code字段相关,Code表示products表中的主键字段(产品只注册一次),sales表中的主键字段是一个名为SaleNumber的自动编号字段。一种产品可能有很多销售。

我希望你能帮助我,我找不到任何东西。我是Access的新手。

1 个答案:

答案 0 :(得分:0)

如果您正在使用表单并希望编写一些VBA,则可以创建一个运行所需内容的提交按钮。它可能看起来像这样:

Private Sub Submit_Button_Click()

Dim myR as Recordset
Dim myR2 as Recordset
Dim strSQL as String

'Select the product from the table that contains the available products
strSQL = "SELECT * FROM Available_Units WHERE Products = '" & me.product_field & "'"

'Set each table accordingly
Set myR as CurrentDb.OpenRecordset(strSQL, dbOpenDyanset)
Set myR2 as CurrentDb.OpenRecordset("Sold_Units_Table", dbOpenDynaset)

'This will edit the existing amount you have in the first table
myR.Edit
myR![Product_Qty] = myR![Product_Qty] - me.qty_sold
myR.Update

'This will add a new record of the transaction in the second table
myR2.addnew
myR2![Product_Sold] = me.product_field
myR2![Product_Qty_Sold] = me.qty_sold
myR2.Update

Set myR = Nothing
Set myR2 = Nothing

End Sub

希望如果你想要去VBA路线,这会有所帮助。