设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2258|回复: 3
打印 上一主题 下一主题

[ADO/DAO] 请教:如何使用ADOX刷新链接表

[复制链接]
跳转到指定楼层
1#
发表于 2002-8-6 21:06:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

Public Sub RefreshLinkedExternalTable(strTargetDB As String, strProviderString As String, strSourceTbl As String, strLinkTblName As String)
  
  ' strTargetDB: 被链接的数据库路径名
  ' strProviderString: 连接字符串
  ' strSourceTbl: 被链接的源表名称
  ' strLinkTblName: 要重设链接的链接表的名称
  
  Dim catDB  As ADOX.Catalog
  Dim tblLink As ADOX.Table
  Dim i As Integer

  Set catDB = New ADOX.Catalog
  catDB.ActiveConnection = CurrentProject.Connection
  
  Set tblLink = catDB.Tables(strLinkTblName)
  
  With tblLink
    .Properties("Jet OLEDB:Create Link") = True
    .Properties("Jet OLEDBink Datasource") = strTargetDB
    .Properties("Jet OLEDBink Provider String") = strProviderString
    .Properties("Jet OLEDB:Remote Table Name") = strSourceTbl
  End With
    
  Set catDB = Nothing

End Sub

但是在
    .Properties("Jet OLEDB:Create Link") = True
    .Properties("Jet OLEDB:Remote Table Name") = strSourceTbl
报错!

请教![em26]
(DAO_链接表_ODBC-相关文章技巧链接):
Access使用ADOX刷新链接表的函数

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2002-8-6 23:40:00 | 只看该作者
好像用DAO刷新更方便吧!
3#
 楼主| 发表于 2002-8-7 00:50:00 | 只看该作者
已通過的代碼:

Public Sub NewLinkedExternalTableMdb()
   
    ' strTargetDB: 被链接的数据库路径名
    ' strProviderString: 连接字符串
    ' strSourceTbl: 被链接的源表名称
    ' strLinkTblName: 要重设链接的链接表的名称
    ' 作者:朱亦文

    Dim strTargetDB() As String
    Dim strProviderString() As String
    Dim strSourceTbl() As String
    Dim strLinkTblName() As String
   
    Dim catDB   As ADOX.Catalog
    Dim tblLink As ADOX.Table
    Dim tmpLink As ADOX.Table
   
    Dim i As Integer
    Dim j As Integer

    Set catDB = New ADOX.Catalog
    catDB.ActiveConnection = CurrentProject.Connection
   
    i = catDB.Tables.Count
   
    ReDim strTargetDB(i)
    ReDim strProviderString(i)
    ReDim strSourceTbl(i)
    ReDim strLinkTblName(i)
   
    i = 1
   
    For Each tmpLink In catDB.Tables
        
        If tmpLink.Properties("Jet OLEDB:Create Link") Then
            If Trim(tmpLink.Properties("Jet OLEDB:Remote Table Name")) <> "" Then
            
                Debug.Print tmpLink.Name & " |  " & tmpLink.Properties("Jet OLEDB:Remote Table Name")
               
                strLinkTblName(i) = tmpLink.Name
                strTargetDB(i) = tmpLink.Properties("Jet OLEDBink Datasource")
                strProviderString(i) = tmpLink.Properties("Jet OLEDBink Provider String")
                strSourceTbl(i) = tmpLink.Properties("Jet OLEDB:Remote Table Name")
               
                Do While InStr(1, strTargetDB(i), "\") <> 0
                    strTargetDB(i) = Mid(strTargetDB(i), InStr(1, strTargetDB(i), "\") + 1, Len(strTargetDB(i)))
                Loop
               
                strTargetDB(i) = CurrentProject.Path & "\" & strTargetDB(i)
               
                i = i + 1
            End If
        End If
   
    Next
   
    j = i - 1
   
    For i = 1 To j
        catDB.Tables.Delete strLinkTblName(i)
            
        Set tblLink = New ADOX.Table
            
        With tblLink
            .Name = strLinkTblName(i)
            Set .ParentCatalog = catDB
               
            .Properties("Jet OLEDB:Create Link") = True
            .Properties("Jet OLEDBink Datasource") = strTargetDB(i)
            .Properties("Jet OLEDB:Link Provider String") = strProviderString(i)
            .Properties("Jet OLEDB:Remote Table Name") = strSourceTbl(i)
        End With
               
        catDB.Tables.Append tblLink
        Set tblLink = Nothing
    Next
    Set catDB = Nothing

End Sub
[em26]
4#
发表于 2006-4-7 17:32:00 | 只看该作者
如果后台数据库有密码怎样连?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-17 01:01 , Processed in 0.088615 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表