用函数建立指定的数据库中所有表的链接表-樟树
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


用函数建立指定的数据库中所有表的链接表

发表时间:2008/6/24 9:10:52 评论(3) 浏览(8144)  评论 | 加入收藏 | 复制
   
摘 要:本函数建立由strDBName指定的数据库中所有表的链接表
调用格式:RefurbishLinkTable(数据库名)
正 文:

Option Compare Database

Function RefurbishLinkTable(strDBName As String)
    '本函数建立由strDBName指定的数据库中所有表的链接表
    On Error Resume Next
    Dim strTableName As String
    strTableName = GetTableNameList(strDBName) '获取所有表名。格式为:表名1;表名2;...
   
    Dim strA() As String
    strA = Split(strTableName, ";") '将strTableName转化为数组
    Dim i As Integer
   
    For i = 0 To UBound(strA) '循环建立链接表,链接表前缀为“Link_”
        DoCmd.DeleteObject acTable, "Link_" & strA(i)
        DoCmd.TransferDatabase acLink, "microsoft Access", strDBName, acTable, strA(i), "Link_" & strA(i)
    Next
End Function

Function GetTableNameList(strDBName As String) As String
'本函数获取strDBName指定的数据库中的所有表名
'strDBName为数据库的完整路径及文件名。
'以字符串形式返回结果
'格式为: 表名1;表名2;...
    Dim CN As ADODB.Connection
    Set CN = New ADODB.Connection
    CN.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBName
    Set RS = CN.OpenSchema(adSchemaTables)
    Dim TableNameList As String
    TableNameList = ""
    Do Until RS.EOF
        If RS("TABLE_TYPE") = "TABLE" Then
            TableNameList = TableNameList & RS("TABLE_NAME") & ";"
        End If
        RS.MoveNext
    Loop
    RS.Close
    GetTableNameList = TableNameList
End Function


Access软件网交流QQ群(群号:198465573)
 
 相关文章
刷新链接表方法,access2003刷新链接表,access200...  【风行  2012/11/10】
odbc链接表不支持Access2007\2010倒三角筛选器功能...  【红尘如烟  2012/11/27】
刷新所有链接表  【Big Young  2013/2/23】
删除Access链接表与删除Access本地表的区别  【麥田  2013/3/9】
创建ODBC链接表连SQL源码示例  【杜超-2号  2013/4/20】
常见问答
技术分类
相关资源
文章搜索
关于作者

樟树

文章分类

文章存档

友情链接