使用OpenRecordSet编辑Access数据库表

时间:2013-06-18 19:57:36

标签: ms-access access-vba

我很新。我正在尝试使用OpenRecordSet更新表并遇到问题。 这是我的代码:

Set rst2 = CurrentDb.OpenRecordset("tbl_Inventory", dbOpenTable)
With rst2
.Edit
If !InventoryID = Me.InventoryID Then

!Stock = Me.Quantity
.Update
.Close
End If
End With
Set rst2 = Nothing

在“库存表单”页面上单击更新按钮时调用此方法。表单上的每一行都有一个更新按钮和一个输入框“Quantity”。这是我的问题:

1)当我单击更新按钮时,所有数量输入框(对于每个项目)都将更改为该新数字。我该如何指定该行?

2)当我点击第一行上的更新,ID = 1,然后回顾库存表格时,我看到已对库存列进行了更改。但是当我点击其他行时,没有任何变化。我有一种感觉,这些源于一个强调问题。

2 个答案:

答案 0 :(得分:1)

您的代码中没有rs.MoveNext行。试试这个:

Set rst2 = CurrentDb.OpenRecordset("tbl_Inventory", dbOpenTable)

Do While rst2.eof = false

With rst2
If !InventoryID = Me.InventoryID Then
   .Edit
   !Stock = Me.Quantity
   .Update
End If

End With

rst2.MoveNext

Loop
rst2.close
Set rst2 = Nothing

答案 1 :(得分:0)

您如何选择要更改的单个记录?你尝试过使用.FindFirst吗?

所以在With之后:

.FindFirst ("[InventoryID] = '" & Me.InventoryID & "'")

这将确保您只使用那一条记录。