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

创建让用户“重新引用dao”按钮

时 间:2021-12-04 16:58:13
作 者:ligy118   ID:81743  城市:洛阳
摘 要:创建“重新引用dao”按钮,在dao引用失效时让用户手动一键重新引用dao。
正 文:

      盟威Access快速开发平台的版本更新是直接替换main.mdb文件,偶尔在使用了盟威平台的版本更新或者把程序放在新电脑上后会出现dao引用失效的情况。起初根据 通过函数自动引用DAO   ,在  SysFrmLogin的Form_Load事件中重新引用dao。每次在关闭时会提示“是否保存对窗体的修改”,如下图:

      虽然屏蔽系统警告可以解决,简单粗暴有效,但没了系统警告是很危险的,并且随着代码的复杂程度提高,很有可能在其他地方又解除了屏蔽警告。因此可以给用户创建个重新引用dao的按钮,在dao失效时手动一键重新引用dao,并可以配合vba达到同时重启的效果。

附   件:

点击下载此附件


图   示:


代   码:

Public Function ReAddDAO()
    Dim REFE As References '声明REFE为引用
    Dim strFileName As String '声明strFileName为文本型变量
    Dim rf As Object
    Set REFE = Application.References
    For Each rf In REFE '在引用中循环查找
        If rf.Name = "DAO" Then   '如果名字为DAO就移动DAO的引用
            Application.References.Remove rf '移除
            Exit For '退出循环
        End If
    Next
    strFileName = "C:\Program Files (x86)\Common Files\microsoft shared\DAO\dao360.dll"
    Set rf = Application.References.AddFromFile(strFileName) '重新引用DAO
End Function
 
Private Sub btnRepair_Click()
    Call ReAddDAO
    
    Dim repairpath As String
    'Debug.Print (CurrentProject.path)
    repairpath = CurrentProject.Path & "\" & "repair.bat"
    'Debug.Print (repairpath)
    Call Shell(repairpath)
    
    Application.Quit acQuitSaveAll
End Sub
 
@echo off
timeout /t 2 /nobreak > nul
set repairpath=%~dp0
set main=main.mdb
set repair=%repairpath%%main%
start %repair%
exit


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

常见问答:

技术分类:

相关资源:

专栏作家

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