网站版友 qfb 等级:普通会员 ( △ )积分:10 城市:昆明 发表于:2013-12-05 15:08:49 发帖
将基于access开发的程序拷贝到其他电脑时,treeview控件老出问题,后来发现是mscomctl.ocx引用丢失,于是在网上下载了一个mscomctl.ocx放到C:\Windows\System32文件夹中,每次只能先去掉引用,然后再打开引用对话框重新手动引用。很是麻烦不利于程序的发布。
请问可不可以将该引用直接写入程序中,该如何实现?
解决方法:
'用VBA代码自动引用树控件
Dim REFE As References '声明REFE为引用
Dim strFileName As String '声明strFileName为文本型变量
Dim rf
Set REFE = Application.References
For Each rf In REFE '在引用中循环查找
If rf.Name = "Common" Then '如果名字为Common就移动Common的引用
Application.References.Remove rf '移除
Exit For '退出循环
End If
Next
strFileName = "C:\Windows\System32\MSCOMCTL.OCX"
Set rf = Application.References.AddFromFile(strFileName) '重新引用树控件
|
上述代码本人电脑测试成功,有的网友测试不能使用的可以使用下面改进版代码
'用VBA代码自动引用树控件
Dim REFE As References '声明REFE为引用
Dim strFileName As String '声明strFileName为文本型变量
Dim rf
Set REFE = Application.References
For Each rf In REFE '在引用中循环查找
If (rf.Name = "Common") And (rf.IsBroken) Then '如果名字为Common就移动Common的引用
Application.References.Remove rf '移除
strFileName = "C:\Windows\System32\MSCOMCTL.OCX"
Set rf = Application.References.AddFromFile(strFileName) '重新引用树控件
Exit For '退出循环
End If
Next
|
使用上述代码自动引用后,再打开数据库看一下引用是不是成功了,如下图: