Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

如何同时刷新多个数据库的链接表

ldw1631  发表于:2014-03-13 15:19:03  
复制

汇总表从多个数据库刷新链接表。如主表2014.mdb,分表201401.mdb, 201402.mdb, ... 201412.mdb(因为数据量较大,所以分月保存不同月份的数据)

以下是刷新单个分表的实例,请教怎样同时刷新12个月数据库链接表。

Private Sub 刷新_Click()
    Dim db As Database
    Set db = CurrentDb
    Dim tbl As TableDef
    For Each tbl In db.TableDefs
    If Len(tbl.Connect) > 0 Then
        tbl.Connect = ";DATABASE=D:\MYZL\JYSJ\2014N\MDB\201401.mdb"
        tbl.RefreshLink
    End If
    Next
    MsgBox "链接表刷新成功"
End Sub

 

Top
cspa 发表于:2014-03-13 16:48:38

做一个循环,每次刷新一个链接库的表,如下:

Private Sub 刷新_Click()
    Dim db As Database
    Set db = CurrentDb
    Dim tbl As TableDef
    dim n as long 

    dim str as string  

    For n=0 to 12             

          If n=0 then

               str=";DATABASE=D:\MYZL\JYSJ\2014N\MDB\2014.mdb"

             else

               str=";DATABASE=D:\MYZL\JYSJ\2014N\MDB\2014" & format(n,"00") & ".mdb"

           end if

           For Each tbl In db.TableDefs
               If Len(tbl.Connect) > 0 Then
                    tbl.Connect = str 

                    tbl.RefreshLink
               End If
           Next
    Next

    MsgBox "链接表刷新成功"
End Sub



赖东文 发表于:2014-03-13 21:26:44

感谢1楼回贴,代码不能循环刷新,只能刷新n=0的结果。

 

提示:运行时错误'3011'

         Microsoft Jet 数据库引擎找不到对象'201401'。请确定对象是否存在,并正确地写出它的名称和路径。



cspa 发表于:2014-03-13 23:24:53
主表2014.mdb和分表201401.mdb, 201402.mdb, ... 201412.mdb是否在一个路径(文件夹)下?如不是,请放在同一文件夹中,或修改代码中的文件路经试试。


赖东文 发表于:2014-03-15 10:49:09

重新检查了,还是刷新不了第2条命令,提示:Microsoft Jet 数据库引擎找不到对象'201401'。请确定对象是否存在,并正确地写出它的名称和路径。

或者改变思路,有创建链接表的代码吗?



赖东文 发表于:2014-03-16 00:08:21

点击下载此附件

上传发贴未解决的事例,请指教。



一杯绿茶 发表于:2014-03-16 18:11:16
我正在多后台管理包括SQL和access做好配置可以一次性刷新多个后台。还有几天才能弄好。

落尘_小新 发表于:2014-03-16 21:36:45
Private Sub 刷新链接_Click()
    On Error Resume Next
    当前路径 = CurrentProject.Path
    If Right(当前路径, 1) <> "\" Then 当前路径 = 当前路径 & "\"
    For n = 0 To 6
        If n = 0 Then
            strpath = 当前路径 & "MDB\2014SP.mdb"
            strbiao = "SP"
        Else
            strpath = 当前路径 & "MDB\20140" & n & ".mdb"
            strbiao = "201X0" & n
        End If
        If IsObject(CurrentDb.TableDefs(strbiao)) Then DoCmd.DeleteObject acTable, strbiao
        DoCmd.TransferDatabase acLink, "microsoft Access", strpath, acTable, strbiao, strbiao, False
    Next
    MsgBox "链接表刷新成功"
End Sub



ldw1631 发表于:2014-03-20 13:01:42
7楼

总记录:8篇  页次:1/1 9 1 :