【问题标题】:Infinitely looping through a recordset in VBA无限循环通过VBA中的记录集
【发布时间】:2011-11-16 12:54:04
【问题描述】:

我有一个使用 .movenext 循环遍历的记录集,但它总是循环播放!

Dim dbsNu As Database
Dim rsNieuw As DAO.Recordset
Dim rsOld As DAO.Recordset

        Set rsOld = dbsNu.OpenRecordset("SELECT * FROM tblActieElementLink WHERE actieElement = " & Me.actieElementId, dbOpenDynaset)
        Set rsNieuw = dbsNu.OpenRecordset("SELECT * FROM tblActieElementLink", dbOpenDynaset)

        With rsNieuw

            Do While rsOld.EOF = False

                .AddNew
                    !actieElement = rsOld!actieElement
                .Update

                rsOld.MoveNext
            Loop

rsOld.EOF 永远不会为真,它会不断添加新记录。

【问题讨论】:

  • 你在调试中看到了什么?尤其是rsOld var
  • 哦,这就是问题所在。我以为 rsold 是一个 snapshop,但我一直在向它添加数据,所以它一直在循环。
  • 那么你的问题解决了吗? :)
  • 如果您解决了问题,即使您自己回答,也应该在下面输入您的答案并将其标记为“已解决”:)

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


【解决方案1】:

我以为 rsOld 是一个快照,但因为我一直通过 rsNieuw 向同一个表添加记录,所以它陷入了无限循环。

【讨论】:

    猜你喜欢
    • 2014-01-15
    • 2018-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    相关资源
    最近更新 更多