如何获取Access Userform以更新现有记录

时间:2016-10-03 15:33:05

标签: vba ms-access access-vba

我正在尝试访问用户窗体按钮以运行更新查询。 我的参数是:

     Invoice number (should update Current ICB.Invoice number)
        Material Code (should update Current ICB.Material Code)
        Amount USD (Should update current ICB.Amount USD)
        Username (Should update current ICB.Owner)
    Vendor Code (Should update current ICB.Vendor code)
Record Number (Should = current ICB.ID)

我想使用表单上的按钮来检查具有相同记录号的记录,并使用输入到userform中的值更新上面列出的字段。我会使用更新查询,但将SQL编写到VBA不是我的强项。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在按钮的OnClick事件中,执行以下操作:

Dim db as Database
Dim rec as Recordset

Set db = CurrentDb
Set rec = db.OpenRecordset("Select * from MyTable where RecordNumber = " & ICB.ID & "")

rec.Edit
rec("InvoiceNumber") = ICB.Invoice_number
rec("MaterialCode") = ICB.Material_Code
etc...
rec.update

rec.close

使用您的实际表格和字段名称,但这是一般的想法。

如果你绝对坚持使用查询,那么你需要以类似的方式在代码中编写SQL并使用DoCmd.RunSQL。像这样:

txtSQL = "UPDATE MyTable SET InvoiceNumber = " & ICB.Invoice_number & ", " & _
           " MaterialCode = " & ICB.Material_Code & "" & _
           etc...
           " WHERE RecordNumber = " & ICB.ID & ""
DoCmd.RunSQL txtSQL

这假设您只使用整数。如果您将数据存储为文本,则需要用单引号括起来。

   " MaterialCode = '" & ICB.Material_Code & "'" & _