Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

【Access懒人工具】用VBA代码自动引用树控件|代码引用Microsoft Windows Common Controls 6.0 (SP6)

时 间:2013-12-06 09:38:08
作 者:麥田   ID:11  城市:上海  QQ:3002789054点击这里给麥田发消息
摘 要:【Access懒人工具】用VBA代码自动引用树控件|代码引用Microsoft Windows Common Controls 6.0 (SP6)
正 文:

网站版友 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


使用上述代码自动引用后,再打开数据库看一下引用是不是成功了,如下图:



Access软件网QQ交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助