使用 VBA 从表单更新表

问题描述 投票:0回答:1

我对 Access 很陌生,并且一直试图更新 tblItems 表中的记录,就好像描述中存在拼写错误一样。 tblItems

我使用的表单允许用户在文本框(tbItemID)中输入存储在表中的项目编号。
frmItemAmend
然后,用户单击“查找”按钮,并在 tblItems 表中选择正确的记录。然后,我的代码添加了相关标签和文本框,但检索到的唯一数据是表中第一条记录的数据。 我已经尝试过该网站和 Youtube 的许多产品,但似乎都不起作用。 下面是我尝试过的代码。 私有子 btnFind_Click()

Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("tblItems", dbOpenDynaset)

rs.FindFirst "Item_ID=" & tbItemID

rs.Edit

tbItemID.Enabled = False

lblDesc.Visible = True
tbDesc.Visible = True
tbDesc.Value = rs!Description

lblUOM.Visible = True
cbUOM.Visible = True
cbUOM.Value = rs!UOM
cbUOM.Enabled = False

lblCost.Visible = True
tbCost.Visible = True
tbCost.Value = rs!Cost

rs.Update
rs.Close
Set rs = Nothing

结束子

感谢您的帮助

我从互联网上尝试了许多不同的宏。 我的期望是,项目表中的记录被输入到表单上的字段中,用户修改所需的内容,并通过保存按钮将新信息更新到表中。

Expected information

vba forms ms-access updates
1个回答
0
投票

代码不是“添加”文本框,它只是设置现有控件的属性。

检索所有记录,但 FindFirst 不起作用,因为 Item_ID 是文本字段,而文本字段需要在参数周围使用撇号分隔符:

rs.FindFirst "Item_ID='" & tbItemID & "'"

仅检索感兴趣的一条记录并消除 FindFirst 会更有效。

Set rs = CurrentDb.OpenRecordset("SELECT * FROM tblItems WHERE Item_ID='" & tblItemID & "'", dbOpenDynaset)

If Not rs.EOF Then
...
End If
© www.soinside.com 2019 - 2024. All rights reserved.