VB 引用库文件,如何用代码实现

yilin54 2012-12-17 04:36:25
在VB中我引用了一些库文件。可是程序拷到其他电脑上提示引用不成功。我引用的方式就是勾选。
我想是否可以直接写代码引用,一打开程序就先执行这个引用。这样程序在其他电脑上可能就没有问题了。

...全文
1595 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_19484373 2014-11-27
  • 打赏
  • 举报
回复
引用VBE,在VBProject对象的References集合里有添加和删除引用的方法
ylj361800875 2014-11-08
  • 打赏
  • 举报
回复
动态创建的怎么使用事件?
yilin54 2012-12-26
  • 打赏
  • 举报
回复
反复搜索思考。后来翻开一本讲ACCESS的书,最后一页讲到需要引用的库文件时。有个是Microsoft Office 12.0 Object Library. 我发现自己引用的是Microsoft Office 11.0 Object Library.版本好像不对。于是换成了书上说的12.0 , 问题解决了。哎,这个问题困扰了我一年多啦。终于尘埃落定了。SupermanKing 说的最贴切。看来是和版本有关系。非常感谢大家!
yilin54 2012-12-26
  • 打赏
  • 举报
回复
引用 6 楼 SupermanKing 的回复:
要提高程序的兼容性,建议动态创建对象,就是不要在工程里引用 ADO 类,而是直接通过 CreateObject 动态创建类就可以了,因为这样操作很容易出现版本兼容性问题。 比如: Visual Basic code ? 12345678910111213141516171819202122 Dim conn As ObjectPrivate Sub Form_Lo……
非常感谢您的耐心回答。
赵4老师 2012-12-24
  • 打赏
  • 举报
回复
1楼正解
东方之珠 2012-12-24
  • 打赏
  • 举报
回复
引用 9 楼 SupermanKing 的回复:
打包安装只能解决系统没有相关控件、组件或是系统相关控件、组件版本低的问题,如果安装包里的组件或控件版本低过系统现有的组件或控件,那就很容易注册失败,当年的 WinMe 就是个典型的例子,WinMe 里带了很多版本比 VB 高的控件,导致即使 VB 做了安装程序安装到 WinMe 里,很多 VB 程序一样容易出现版本兼容问题运行不起来。所以建议安装包要做,但组件尽量动态创建使用,看看 ASP 就知道……
你说的问题,我还真没有碰到过。SetupFactory 在安装的时候,可以自动识别版本的,如果电脑系统的版本高于要安装的版本,就不复制文件,否则要复制文件并注册。 我的软件在XP下开发,在Windows98下打包,搜集的全是windows98的东西,但从win98-win7-win8,全都能运行。其中,wmp控件,在win98下版本够低的了吧。
现在还是人类 2012-12-24
  • 打赏
  • 举报
回复
再比如 XMLHTTP 对象,三天两头的在升新版本,如果工程里也这么引用的话,哪天更新一下系统,组件版本被更换了,按照这种用法程序又要奔溃了。ADO 也是一样,说不定哪天 MS 又发现什么 BUG,然后更新系统是把他也给更新了,也可能会造成同样的问题出现,所以说还是动态的安全点,只要他不是把整个方法、属性、事件给改了,基本上不会有什么大问题的。
现在还是人类 2012-12-24
  • 打赏
  • 举报
回复
打包安装只能解决系统没有相关控件、组件或是系统相关控件、组件版本低的问题,如果安装包里的组件或控件版本低过系统现有的组件或控件,那就很容易注册失败,当年的 WinMe 就是个典型的例子,WinMe 里带了很多版本比 VB 高的控件,导致即使 VB 做了安装程序安装到 WinMe 里,很多 VB 程序一样容易出现版本兼容问题运行不起来。所以建议安装包要做,但组件尽量动态创建使用,看看 ASP 就知道了,根本就不会有这种 ADO 版本问题,因为 ASP 只能动态创建对象。
东方之珠 2012-12-24
  • 打赏
  • 举报
回复
引用是可以的。 但是,要通过打包程序打包,将ADO对象库打包进去就OK了,这样通过安装后就能运行。
现在还是人类 2012-12-23
  • 打赏
  • 举报
回复
要提高程序的兼容性,建议动态创建对象,就是不要在工程里引用 ADO 类,而是直接通过 CreateObject 动态创建类就可以了,因为这样操作很容易出现版本兼容性问题。 比如:

Dim conn As Object
Private Sub Form_Load()
    ' 初始化对象实例
    Set conn = CreateObject("ADODB.Connection")
    conn.open "Provider=Microsoft.Jet.OLEDB.4.0;UID=;PWD=;Data Source=x:\xx.mdb"
End Sub
Private Sub Form_Unload(Cancel As Integer)
    ' 卸载对象
    conn.Close
    Set conn = Nothing
End Sub
Private Sub Command1_Click()
   Dim rs As Object
   Dim rsRecordCount As Long
   Set rs = CreateObject("ADODB.Recordset")
   rs.open "Select count(*) as c From 表", conn, 3, 1
   rsRecordCount = rs!c
   rs.Close
   Set rs = Nothing
   MsgBox "表中有" & rsRecordCount & " 条记录"
End Sub
yilin54 2012-12-21
  • 打赏
  • 举报
回复
这个问题是否还有正解》?
yilin54 2012-12-18
  • 打赏
  • 举报
回复
引用 1 楼 myjian 的回复:
引用不成功的原因很多,比如文件本身不存在,或未注册,或者依存库不存在/未注册等,你要搞清楚是什么情况才好想办法. 至于你这个库,看起来像是ADO的库,读写ACCESS或SQL SERVER?那客户机器上得安装MDAC,XP与2003系统下装MDAC2.8就可以了.
高手啊。一看什么都明白了。 是用ACCESS 访问SQL SERVER 数据库。用到了ADO。需要引用这个库文件。在其他电脑上运行不成功时,我查看引用也是勾选的,但还是会提示这个ADO类不认识。我把勾选的优先级往上移动,保存了就可以了。 我怀疑一定要手动把引用的优先级调下,程序才会认识。所以我就想是不是可以用代码实现一打开程序就先直接引用这些库。这样可能就可以避免这个问题了。
bcrun 2012-12-18
  • 打赏
  • 举报
回复
和“引用的优先级”有关?这倒没想到。对了,我的经验,好像一般把库放在工程的目录中,保存时好像是按相对路径的,容易成功些。仅供参考。
worldy 2012-12-17
  • 打赏
  • 举报
回复
使用VB的打包和展开向导,制作安装包
嗷嗷叫的老马 2012-12-17
  • 打赏
  • 举报
回复
引用不成功的原因很多,比如文件本身不存在,或未注册,或者依存库不存在/未注册等,你要搞清楚是什么情况才好想办法. 至于你这个库,看起来像是ADO的库,读写ACCESS或SQL SERVER?那客户机器上得安装MDAC,XP与2003系统下装MDAC2.8就可以了.

2,463

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧