乐筑天下

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

14.5 数据记录和AutoCAD实体调用

[复制链接]

120

主题

326

帖子

7

银币

中流砥柱

Rank: 25

铜币
806
发表于 2006-7-13 18:18:00 | 显示全部楼层 |阅读模式
如果将光盘中的数据记录和实体的对应.dvb文件,换个目录和mdb文件出现如下问题。

tnlgdqa4ihe.jpg

tnlgdqa4ihe.jpg



我分析出现的问题是VBE的问题。
翻译VBE的特性
This property allows you to access the VBA IDE object model from AutoCAD's object model. The property will throw an exception if the VBAIDE is not available. For example, the VBAIDE is not available if the acvba.arx app has not been loaded.
这个特性允许存取VBA IDE实体模式从AuotCAD实体模型中,.....,如果VBAID没有装载acvba.arx app, VBAIDE不可用。
因此,我认为出现图示问题是VBAID没有装载acvba.arx,如何解?
Public Function OpenDB() As Boolean
    OpenDB = True
   
    ' 如果数据库已打开,不执行任何操作
    If adoCon.State  0 Then Exit Function
   
    adoCon.CursorLocation = adUseClient
   
    ' 获得数据库文件的位置
    Dim strDbName As String
    Dim strProject As String
'出问题的语句
    strProject = Left(ThisDrawing.Application.VBE.activevbProject.FileName, _
                    Len(ThisDrawing.Application.VBE.activevbProject.FileName) - 21)
    strDbName = strProject & "sample.mdb"
   
    adoCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
        strDbName & ";"
End Function
回复

使用道具 举报

26

主题

589

帖子

10

银币

中流砥柱

Rank: 25

铜币
693
发表于 2006-7-16 23:09:00 | 显示全部楼层
strProject = Left(ThisDrawing.Application.VBE.activevbProject.FileName, _
                    Len(ThisDrawing.Application.VBE.activevbProject.FileName) - 21)
这句代码限定了工程文件的文件名必须大于21个字符,否则出错。
取工程文件的路径可以:
' 判断最后一个“\”的字符位置
Dim i As Integer
i = InStrRev(ThisDrawing.Application.VBE.activevbProject.FileName, "\")
If i  0 Then
    strProject = Left(ThisDrawing.Application.VBE.activevbProject.FileName, i)
End If
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-5 23:58 , Processed in 0.502037 second(s), 59 queries .

© 2020-2025 乐筑天下

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