Office中国论坛/Access中国论坛

标题: 老朱,用DAO不行啊? [打印本页]

作者: 大熊    时间: 2002-12-25 22:58
标题: 老朱,用DAO不行啊?
如何用代码链接带有密码的数据库中的表
您是第 3 读者

作    者:朱亦文  
发布日期:2002年11月21日
摘    要:通过ADOX来实现带有密码的数据库的链接

正    文:

(问):我如何使用代码链接带有密码的数据库中的表?

(答):将下列代码粘贴到一个新模块中,并通过使用adoLinkTable函数来实现。

'=======================================================================
' 函    数:adoLinkTable(strMdbPath, strPWD, strLinkName, strTblName)
' 参数说明:strMdbPath 为要链接的数据库的路径
'           strPWD 为打开数据库的密码
'           strLinkName 为链接表名称
'           strTblName 为链接的表的名称
' 返    回:True 成功,False 失败
' 调用举例:
'     OK = adoLinkTable("c:\123.mdb", "123", "订单", "订单")
' 作者:朱亦文
' 日期:2002.11.21
'=======================================================================
Public Function adoLinkTable(ByVal strMdbPath As String, _
                            ByVal strPWD As String, _
                            ByVal strLinkName As String, _
                            ByVal strTblName As String) As Boolean

    On Error Resume Goto errh

    Dim catDB As ADOX.Catalog
    Dim tblLink As ADOX.Table

    Set catDB = New ADOX.Catalog
    catDB.ActiveConnection = CurrentProject.Connection

    ' 建立一个新的表对象
    Set tblLink = New ADOX.Table

    With tblLink
        ' 链接表名称
        .Name = strLinkName
        Set .ParentCatalog = catDB

        .Properties("Jet OLEDB:Create Link") = True
        ' 数据库的路径和名称
        .Properties("Jet OLEDBink Datasource") = strMdbPath
        ' 提供者及密码
        .Properties("Jet OLEDBink Provider String") = "MS AccessWD=" & strPWD & ";"
        ' 原数据库中的表
        .Properties("Jet OLEDB:Remote Table Name") = strTblName
    End With

    catDB.Tables.Append tblLink        ' 添加到库中
    Set tblLink = Nothing

    adoLinkTable = True
    Exit Function

errh:
    adoLinkTable = False
End Function



注:在VBA编辑器中引用"Microsoft ADO Ext. 2.5 for DDL and Security"以及"Microsoft ActiveX Data Objects 2.1/2.5/2.6/2.7 Library"


来 源 于:本站原作









欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3