我在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!没有错过任何步骤(我正在逐步执行)。
我对此非常失望,我无法编辑正确的记录。
如果你们中有任何人知道发生了什么,我很高兴知道!
答案 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