ms-access - 为什么需要循环来更改 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
为什么只有一条记录时需要添加循环来更新字段?
解决方案
你不需要循环。您只需要触发更新。
事实上,这只是您如何设置连接的限制。由于它不支持批量更新,因此移动到下一条记录会触发更新。
如果您添加rs.Update
到第一段代码,它应该可以工作。
推荐阅读
- django - 用等效+装饰子类替换 Django 模型类的正确方法
- java - 读取文件后如何创建队列?
- php - foreach in foreach in if blade php
- php - Issue with defining the path of upload in php
- syntax - is it possible that compiled languages (C#, Java) to benefit indentions as a code block indication like python?
- reactjs - 使用模式框在 React 中编辑项目后重新加载列表 - 将功能从一个组件传递到另一个组件
- python - ValueError: invalid literal for int() with base 10: '40 1 3 4 20\n'
- python - 在 Django 的 ORM 中使用带有 UPDATE 的子查询
- javascript - 对合成 onwheel 事件做出反应的上下文 api 状态不持久
- java - 我不明白为什么这个 Java 问题中变量结果的值不为零