【问题标题】:2010 Access vba moving to different records in ADO2010 Access vba 移动到 ADO 中的不同记录
【发布时间】:2018-09-29 00:40:52
【问题描述】:

我需要使用 ADO 在当前记录之前或之后更新 (n) 条记录。

我有代码可以打开、阅读所有选定的记录并关闭。

我想知道是否有办法更改当前记录指针。例如,我想做这样的事情:

i=1
Do until rs.EOF
  If i > 5 then
    Field2=rs!Field1
    rs!CurrentRecordPointer = i-3
    'update Field2 in this record
    rs!CurrentRecordPointer = i+3
  End If
  i = i + 1
  rs.MoveNext
Loop

这可能吗,还是我需要使用数组?

【问题讨论】:

  • 必须是 ADO 吗?我发现 DAO 记录集更适合在迭代中进行更新。
  • 我全神贯注...我不知道如何使用 DAO,只有 ADO。是否需要对代码进行大量更改,我将如何引用记录 +/- 当前记录?谢谢
  • 由于我只需要三个数组并且只需要几条记录,因此我决定在处理数组中的记录时保存数据,然后根据数组中的值设置当前记录中的字段.我仍然对 DAO 感兴趣并这样做,所以如果有人有一个很好的指向带有示例的网页的指针,我将不胜感激。

标签: ms-access vba ms-access-2010 ado


【解决方案1】:

使用 DAO 对象引用,您可以遍历记录并更新它们。

Dim db As Database, myRecordset As Recordset
Set db = CurrentDb()

sqlString = "SELECT myfield FROM myTable"

Set myRecordset = db.OpenRecordset(sqlString, dbOpenDynaset, dbSeeChanges)

myRecordset.MoveFirst

Do While myRecordset.EOF = False
    myRecordset.Edit
    myRecordset.Fields("myfield ").Value = newValue
    myRecordset.Update
    myRecordset.MoveNext
Loop

【讨论】:

  • 谢谢,@jshort。这正是我所需要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多