如何获取访问用户表单以更新现有记录

Posted

技术标签:

【中文标题】如何获取访问用户表单以更新现有记录【英文标题】:How to get an Access Userform to update an existing record 【发布时间】:2016-10-03 15:33:04 【问题描述】:

我正在尝试获取访问用户表单按钮来运行更新查询。 我的参数是:

     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)

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

【问题讨论】:

您有任何代码要发布吗?另外,您不需要在 VBA 中执行此操作,您可以对其进行查询。 试试Refresh。如果没有帮助,请尝试Requery 您说的是 Access 表单,还是无法绑定到数据源的办公室“用户”表单? 【参考方案1】:

在按钮的 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 & "'" & _ 

【讨论】:

以上是关于如何获取访问用户表单以更新现有记录的主要内容,如果未能解决你的问题,请参考以下文章

当新记录插入或更新数据库表中的现有记录时,如何 Hazelcast jet JDBC 继续源获取数据?

无法获取表单以打开现有记录

访问 VBA:如何在表单中获取输入并在查询中使用它们

如何在表单正文中获取(orderId)有效负载值以更新订单状态?

如何在更新后的风帆中获取以前的值记录?

如果用户需要向现有选项添加新选项,如何在访问中创建一个组合框,该组合框可以转换为文本框以启用书写?