ActiveX/第三方控件/插件
动态引用dao,ado,adox
2007-11-16 12:23:08
文件类型 : rar
文件版本 : access2003
简要说明 : 动态引用的模块,可以动态引用dao、ado、adox。即不需要手动去应用ado等内容。
程序做好给别人使用的时候总会出现丢失引用的现象,程序中会经常使用到dao、ado、adox对象
下面的示例是一个动态引用的模块,可以动态引用dao、ado、adox。即不需要手动去应用ado等内容。
需要把本函数放在模块中,且把lib目录放在当前目录中,否则会找不到引用库。
 
Public Function addref(refName As String)
'****************************************************************
'*模块设计: 李寻欢
'*邮箱:vba@accfans.net
'*****************************************************************
'用法:
'1、引用Ado:addref "ADO"
'2、引用ADOX:addref "ADOX"
'3、引用DAO:addref "DAO"
'******************************************************************
 
Dim strCpath As String
Dim ref As Reference
Dim strFileName As String
 
On Error GoTo Err_add_ref
    
    strCpath = CurrentProject.Path
    If Right(strCpath, 1) <> "\" Then
        strCpath = strCpath & "\"
    End If
    Select Case refName
        Case "ADO"
            If Dir(strCpath & "lib\msado15.dll") = "" Then
                MsgBox "找不到ADO引用库,引用失败!", vbCritical, "动态引用"
                Exit Function
            Else
                strFileName = strCpath & "lib\msado15.dll"
            End If
        Case "ADOX"
            If Dir(strCpath & "lib\msadox.dll") = "" Then
                MsgBox "找不到ADOX引用库,引用失败!", vbCritical, "动态引用"
                Exit Function
            Else
                strFileName = strCpath & "lib\msadox.dll"
            End If
        Case "DAO"
            If Dir(strCpath & "lib\dao360.dll") = "" Then
                MsgBox "找不到ADOX引用库,引用失败!", vbCritical, "动态引用"
                Exit Function
            Else
                strFileName = strCpath & "lib\dao360.dll"
            End If
        Case Else
            MsgBox "不支持的引用字符串,引用失败!", vbCritical, "动态引用"
            Exit Function
    End Select
    
    Set ref = References(refName)
    Application.References.Remove ref
    Set ref = Application.References.AddFromFile(strFileName)
Exit_add_ref:
    Exit Function
    
Err_add_ref:
    'MsgBox Err.Description
    Resume Next
    
End Function