我正在使用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的新手。
答案 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路线,这会有所帮助。