首页 > 解决方案 > 为什么需要循环来更改 Access VBA 中的记录集?

问题描述

我试图更改 Access 中记录集布尔列的值。我使用的代码没有抛出任何错误:

    Dim rs As New ADODB.Recordset

        rs.Open "select * from TABLE where field1 = '" & Me.field1 & "' AND field2 = '" & Me.field2 & "'",currentproject.connection, adOpenDynamic, adLockOptimistic
        rs("boolean") = True

但是,布尔值没有更新。该recordset.recodcount属性给出 1。这就是为什么我认为我不需要循环。但是只有当我添加一个循环并且不明白为什么会这样时,记录才会更新。

 Do While Not rs.EOF
         rs("boolean") = True
       rs.MoveNext
       Loop

为什么只有一条记录时需要添加循环来更新字段?

标签: ms-accessvba

解决方案


你不需要循环。您只需要触发更新。

事实上,这只是您如何设置连接的限制。由于它不支持批量更新,因此移动到下一条记录会触发更新。

如果您添加rs.Update到第一段代码,它应该可以工作。


推荐阅读