乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 77|回复: 3

[编程交流] 记录集。记录计数

[复制链接]

7

主题

16

帖子

9

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 17:19:01 | 显示全部楼层 |阅读模式
我在AutoCad中加载了VBA代码。在这段代码中,我连接到一个数据库(access),以将三维多段线中的数据存储在图形中。在这个过程中,我想用数据库的第一个和最后一个条目检查新选中的行(这样我就可以将选中的行添加到数据库中存储的行中)。
 
为此,我制作了一个数据库记录集,以确定数据库的大小。这不会像应该的那样工作!!
 
  1.     SQL = "SELECT Nr FROM Polyline"
  2.    Set rsline = DB.Execute(SQL)
  3.    MsgBox rsline.RecordCount
  4.    rsline.MoveLast

 
rsline。recordCount的值为-1
movelast命令给出了ann错误。自动化错误(错误440)
 
(这表明只有rsline.movenext可以正常工作。所以我可以用rsline.movenext编写一个循环,直到rsline.eof=true,但这个数据库将非常大,所以我不喜欢这个选项。)
 
有人能告诉我怎么解决这个问题吗
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 17:44:03 | 显示全部楼层
这一个对我很有用:
 
  1. Option Compare Database
  2. Option Explicit
  3. Sub test()
  4. Dim rsline As DAO.Recordset
  5. Dim Db As DAO.Database
  6. Set Db = CurrentDb
  7. Dim SQL As String
  8.    SQL = "SELECT Nr FROM Polyline"
  9.    Set rsline = Db.OpenRecordset(SQL)
  10.    MsgBox "Number of records are: " & rsline.RecordCount
  11.    rsline.MoveLast
  12.    MsgBox "Polyline number is: " & rsline!Nr
  13.    ' close and clean up 'rsline' and 'Db' here if you need it
  14. End Sub

 
~'J'~
回复

使用道具 举报

7

主题

16

帖子

9

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-6 18:11:17 | 显示全部楼层
问题是我使用了一个ADO数据库而不是DAO,现在我改变了,问题消失了。谢谢你的建议
回复

使用道具 举报

1

主题

1069

帖子

1050

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
69
发表于 2022-7-6 18:30:13 | 显示全部楼层
我很高兴你解决了一个问题
干杯
 
~'J'~
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 16:51 , Processed in 0.469860 second(s), 60 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表