【问题标题】:DAO Recordset Changing by itself on Edit or UpdateDAO 记录集在编辑或更新时自行更改
【发布时间】:2015-07-22 13:53:00
【问题描述】:

我在尝试在 VBA/Access 项目上尝试 .edit.update DAO.Recordset 时遇到问题。我实际上是在使用 CodeVBA 扩展来自动从表中创建类。以这种方式创建的类会出现问题。

Recordset 变量是这样声明的:

Dim Recordset as DAO.Recordset
Set Recordset = CurrentDb.OpenRecordset("Ordres de travail", dbOpenDynaset)

我的代码中有这两行:

    Recordset.Edit
    Recordset.Fields("Commentaire indisponibilité").Value = NullIfEmptyString(Me.Commentaireindisponibilité)

在执行过程中,我通过查看局部变量面板中的主键值来监控所选记录。在执行第一行之前,主键值为 1409,但在执行期间和之后,它移动到记录 91!没有遗漏任何步骤(我正在使用逐步执行)。

对此我感到非常失望,而且我无法编辑正确的记录。

如果你们中有人知道发生了什么,我很高兴知道!

【问题讨论】:

    标签: vba ms-access dao recordset


    【解决方案1】:

    如果您在 Form 内运行此代码,则已经有一个名为 Recordset 的对象,它是 Form 属性。编译器可能会感到困惑。

    将您的变量名称更改为 oRecordset(或我最喜欢的 rs)

    Dim rs as DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("query", dbOpenDynaset)
    
    With rs
        .Edit
        .Fields("field").Value = ""
        .Update
    End With
    

    【讨论】:

    • 这段代码在一个类中运行。无论如何我都试过了,它没有改变任何东西,记录集自己不断变化......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-08
    相关资源
    最近更新 更多