明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1474|回复: 1

14.5 数据记录和AutoCAD实体调用

[复制链接]
发表于 2006-7-13 18:18:00 | 显示全部楼层 |阅读模式

如果将光盘中的数据记录和AutoCAD实体的对应.dvb文件,换个目录和mdb文件出现如下问题。

我分析出现的问题是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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 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

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-27 00:37 , Processed in 0.148570 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表