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

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

时 间:2008-06-24 09:10:52
作 者:   ID:994  城市:杭州
摘 要:本函数建立由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交流群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

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