Huibert 发表于 2022-7-6 17:19:01

记录集。记录计数

我在AutoCad中加载了VBA代码。在这段代码中,我连接到一个数据库(access),以将三维多段线中的数据存储在图形中。在这个过程中,我想用数据库的第一个和最后一个条目检查新选中的行(这样我就可以将选中的行添加到数据库中存储的行中)。
 
为此,我制作了一个数据库记录集,以确定数据库的大小。这不会像应该的那样工作!!
 
    SQL = "SELECT Nr FROM Polyline"
   Set rsline = DB.Execute(SQL)
   MsgBox rsline.RecordCount
   rsline.MoveLast
 
rsline。recordCount的值为-1
movelast命令给出了ann错误。自动化错误(错误440)
 
(这表明只有rsline.movenext可以正常工作。所以我可以用rsline.movenext编写一个循环,直到rsline.eof=true,但这个数据库将非常大,所以我不喜欢这个选项。)
 
有人能告诉我怎么解决这个问题吗

fixo 发表于 2022-7-6 17:44:03

这一个对我很有用:
 

Option Compare Database
Option Explicit

Sub test()

Dim rsline As DAO.Recordset
Dim Db As DAO.Database
Set Db = CurrentDb
Dim SQL As String
   SQL = "SELECT Nr FROM Polyline"
   Set rsline = Db.OpenRecordset(SQL)
   MsgBox "Number of records are: " & rsline.RecordCount
   rsline.MoveLast
   MsgBox "Polyline number is: " & rsline!Nr
   ' close and clean up 'rsline' and 'Db' here if you need it

End Sub

 
~'J'~

Huibert 发表于 2022-7-6 18:11:17

问题是我使用了一个ADO数据库而不是DAO,现在我改变了,问题消失了。谢谢你的建议

fixo 发表于 2022-7-6 18:30:13

我很高兴你解决了一个问题
干杯
 
~'J'~
页: [1]
查看完整版本: 记录集。记录计数