设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: todaynew
打印 上一主题 下一主题

[Access本身] 【Access小品】AK47半自动步枪--非网络的数据集中示例

[复制链接]
11#
 楼主| 发表于 2010-12-20 11:25:10 | 只看该作者
本帖最后由 todaynew 于 2010-12-20 11:36 编辑
roych 发表于 2010-12-20 01:28
回复 todaynew 的帖子

如果能自动更新链接表就好了~~我解压放在桌面后每次都弹出这个对话框,然后除了浏览 ...


用以下函数处理:
Function MyTrdb(Fpath As String, Fname As String)
'引用:Microsoft Scripting Runtime
'功能:重建表链接。
'参数:Fname:后台数据库完整文件名
'示例:MyTrdb(CurrentProject.Path & "\","后台.mdb")

Dim myFSO As New FileSystemObject
Dim obj As AccessObject, dbs As Object
Dim tbnmae As String, sname As String
Dim Dname As String
On Error GoTo MyTrdb_Err
    If myFSO.FileExists(Fpath & Fname) = True Then
        Set dbs = Application.CurrentData
        For Each obj In dbs.AllTables
            If InStr(obj.Name, "MSys") = 0 Then
                If DLookup("Type", "MSysObjects", "name='" & obj.Name & "'") = 6 Then
                    Dname = Nz(DLookup("Database", "MSysObjects", "name='" & obj.Name & "'"), "")
                    If Fpath & Fname <> Dname Then
                        If Dname <> "" Then
                            If Mid(Dname, InStrRev(Dname, "\") + 1) = Fname Then
                                tbnmae = obj.Name
                                sname = DLookup("ForeignName", "MSysObjects", "name='" & obj.Name & "'")
                                DoCmd.DeleteObject acTable, tbnmae                                                        '删除链接
                                DoCmd.TransferDatabase acLink, "Microsoft Access", Fpath & Fname, acTable, sname, tbnmae, False  '建立链接
                            End If
                        End If
                    End If
                End If
            End If
        Next obj
   
    End If
MyTrdb_Exit:
    Exit Function

MyTrdb_Err:
    MsgBox Error$
    Resume MyTrdb_Exit
End Function

一楼的实例已经更新,请参见该函数的用法。
12#
 楼主| 发表于 2010-12-20 11:34:59 | 只看该作者
ycxchen 发表于 2010-12-20 10:55
运行了,不知错在什么地方,请版主指教!

呵呵,请重新下载实例即可。
13#
发表于 2010-12-20 12:03:09 | 只看该作者
重新下载例子行了,请问,如果不发到桌面,直接在保存文件的目录下运行要修改什么代码?
14#
发表于 2010-12-20 13:14:24 | 只看该作者
回复 todaynew 的帖子

T版:
      看看这是咋会事?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
15#
 楼主| 发表于 2010-12-20 13:41:26 | 只看该作者
ycxchen 发表于 2010-12-20 12:03
重新下载例子行了,请问,如果不发到桌面,直接在保存文件的目录下运行要修改什么代码?

应该不用,保持【前台.mdb】、【后台.mdb】和【各分部数据】在一个文件夹下即可。
16#
 楼主| 发表于 2010-12-20 13:44:11 | 只看该作者
LJB 发表于 2010-12-20 13:14
回复 todaynew 的帖子

T版:

你是在做自己复制自己的动作吧?呵呵
你要另外做一个文件夹,假设它是你从分公司得到的数据库,然后从这个数据库中向本系统导入数据。
17#
发表于 2010-12-20 15:09:44 | 只看该作者
单击“浏览”,后单击“取消”,会出现错误,请问,如何修改?“GetFolder = dlgOpen.SelectedItems(1)”反相显示的,提示如下图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
18#
发表于 2010-12-20 19:14:31 | 只看该作者
回复 ycxchen 的帖子

出现14L的界面后,按“结束”,关闭后再打开就好了~~可能是跟里面自运行的宏有关。
19#
 楼主| 发表于 2010-12-20 19:43:34 | 只看该作者
ycxchen 发表于 2010-12-20 15:09
单击“浏览”,后单击“取消”,会出现错误,请问,如何修改?“GetFolder = dlgOpen.SelectedItems(1)”反 ...

选择文件夹后,按了取消吧?
20#
发表于 2010-12-21 09:31:17 | 只看该作者
哈哈,有趣的功能.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-14 00:45 , Processed in 0.102553 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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