我很新。我正在尝试使用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,然后回顾库存表格时,我看到已对库存列进行了更改。但是当我点击其他行时,没有任何变化。我有一种感觉,这些源于一个强调问题。
答案 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 & "'")
这将确保您只使用那一条记录。