DAO Recordset在编辑或更新时自行更改

时间:2015-07-22 13:53:01

标签: vba ms-access dao recordset

我在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!没有错过任何步骤(我正在逐步执行)。

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

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

1 个答案:

答案 0 :(得分:0)

如果在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