Com EPSDK.记录集在EOF(文件结束)之前不循环

Com EPSDK.记录集在EOF(文件结束)之前不循环,com,vb6,recordset,Com,Vb6,Recordset,我目前正在完成一个项目的一半,我正在使用VisualBasic和COM从一个古老的Adobe工作流服务器迁移数据 当我试图执行一个简单的while循环来计算一个记录集中的记录数时,我遇到了一些麻烦,我不断地得到这个错误 microsoft.visualbasic.dll中发生“System.Runtime.InteropServices.COMException”类型的未处理异常 附加信息:未指定的错误“ 网上几乎没有帮助我的文档,所以我希望有一些VB向导/老手可以为我指明正确的方向 我已将记录

我目前正在完成一个项目的一半,我正在使用VisualBasic和COM从一个古老的Adobe工作流服务器迁移数据

当我试图执行一个简单的while循环来计算一个记录集中的记录数时,我遇到了一些麻烦,我不断地得到这个错误

microsoft.visualbasic.dll中发生“System.Runtime.InteropServices.COMException”类型的未处理异常 附加信息:未指定的错误“

网上几乎没有帮助我的文档,所以我希望有一些VB向导/老手可以为我指明正确的方向

我已将记录设置为全局变量,如下所示

Dim record As New EPSDK.Recordset
然后我试着

Dim recCount As Integer = 0
Do Until record.EOF
        recCount += 1
    Loop
这个

Dim recCount As Integer = 0
Do While Not record.EOF
        recCount += 1
    Loop
Dim recCount As Integer = 0
Do
        recCount += 1
    Loop Until record.EOF
这个

Dim recCount As Integer = 0
Do While Not record.EOF
        recCount += 1
    Loop
Dim recCount As Integer = 0
Do
        recCount += 1
    Loop Until record.EOF
还有很多其他的变化,但似乎仍然不能解决问题。没有代码错误,控制台中没有出现任何问题,我只是不断地返回该消息


谁能看出我做错了什么?谢谢

好的,我已经查阅了EPSDK的文档。对于那些不知道的人(就像我一样),这是一个来自Adobe的对象集合,用于处理COM数据。它基本上是ADO中最流行的功能

MoveFirst,顾名思义,移动到记录集中的第一条记录。EPSDK记录集对象似乎不支持任何此类方法。因为您可以使用Move方法来做同样的事情,所以不需要它。在这两种情况下,您都不需要使用它来移动到文件的末尾

您所做的错误是期望您可以增加一个名为recCount的变量,该变量是您编写的,记录集光标将神奇地移动。没有发生。正如您所说,doc是不真实的,但是您可能需要使用MoveNext。您可以使用备忘单查找支持的内容

另外,您需要指定一个连接,打开它,将记录集指向打开的连接,然后打开记录集。我建议您熟悉ADO(不是ADO.Net!不是同一件事),这显然是基于ADO。有更多的文档,它应该应用得相当好。特别是阅读连接和记录集


现在,你的循环做了几乎相同的事情。而Not则相当于Until。但是,如果将while/until条件放在Do语句之后,则除非满足该条件,否则不会进入循环。如果将其放在Loop语句之后,则始终至少运行一次循环。在这种情况下,您应该将“Do Until myRecordset.EOF”,因为如果记录集为空,您就不会进入循环

查找
MoveFirst()。它在while语句@vba4all中失败