Office中国论坛/Access中国论坛

标题: 【Access小品】AK47半自动步枪--非网络的数据集中示例 [打印本页]

作者: todaynew    时间: 2010-12-19 11:52
标题: 【Access小品】AK47半自动步枪--非网络的数据集中示例
本帖最后由 todaynew 于 2010-12-20 11:28 编辑

  前几日看凤凰台的文涛拍案,说是朝鲜的小学课本中曾经有一段宣扬金日成同志用步枪击落美国鬼子飞机的故事。伊拉克战争期间,也曾有报道伊拉克民兵用AK47步枪击落F117的战例。在战场上步兵装备的AK47,M16这类半自动武器,还是能有用处的,有句话叫做:大炮不能上刺刀,最后解决问题还需要搞步兵。

  数据库发展到现在,网络技术是很厉害的。一般的处理,总是按照数据集中的方式进行,这样的效率很高。但不依靠网络,异地的数据也还是可以集中起来的,这个时候就需要半自动武器了。版友马喜立同志便提出了一个这个问题,大意是每月从拷贝或者电邮若干分公司的数据,然后在本部进行合并。基于该同志的实例,编写了这个处理案例,供需要AK47步兵装备的同志们参考。

[attach]44421[/attach]

[attach]44415[/attach]


作者: tmtony    时间: 2010-12-19 12:07
很有实用价值,收藏了,老兄的小品很贴合时代
作者: wang1950317    时间: 2010-12-19 12:45
下了!看看有何作用!谢谢!
作者: ycxchen    时间: 2010-12-19 14:32
很有实用价值,谢谢分享!
作者: t小宝    时间: 2010-12-19 21:21
本帖最后由 t小宝 于 2010-12-19 21:22 编辑

说得真好,例子也实用
作者: li08hua    时间: 2010-12-20 00:57
这个武器不错!
作者: roych    时间: 2010-12-20 01:28
回复 todaynew 的帖子

如果能自动更新链接表就好了~~我解压放在桌面后每次都弹出这个对话框,然后除了浏览文件的那个按钮可用之外,其它都不行~~
[attach]44418[/attach]

作者: ycxchen    时间: 2010-12-20 07:50
7楼的问题我也想知道。
作者: xuwenning    时间: 2010-12-20 08:25
谢谢分享
收藏了
作者: ycxchen    时间: 2010-12-20 10:55
运行了,不知错在什么地方,请版主指教!
[attach]44420[/attach][attach]44419[/attach]

作者: todaynew    时间: 2010-12-20 11:25
本帖最后由 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

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

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

T版:
      看看这是咋会事?[attach]44427[/attach]

作者: todaynew    时间: 2010-12-20 13:41
ycxchen 发表于 2010-12-20 12:03
重新下载例子行了,请问,如果不发到桌面,直接在保存文件的目录下运行要修改什么代码?

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

T版:

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

作者: roych    时间: 2010-12-20 19:14
回复 ycxchen 的帖子

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

选择文件夹后,按了取消吧?
作者: termisss    时间: 2010-12-21 09:31
哈哈,有趣的功能.
作者: ycxchen    时间: 2010-12-21 09:34
没有选择文件按了取消,可能要加个空值判断的代码吧?
作者: todaynew    时间: 2010-12-21 12:25
ycxchen 发表于 2010-12-21 09:34
没有选择文件按了取消,可能要加个空值判断的代码吧?

对!是需要加空值返回的代码,你自己试试。
作者: lovehere    时间: 2010-12-21 16:07
这个必须要学习
作者: ycxchen    时间: 2010-12-21 16:59
例子中只是单一的表,要是多几个存在一对多关系的表,不知本例子的办法能否解决?
作者: todaynew    时间: 2010-12-21 17:07
本帖最后由 todaynew 于 2010-12-21 17:08 编辑
ycxchen 发表于 2010-12-21 16:59
例子中只是单一的表,要是多几个存在一对多关系的表,不知本例子的办法能否解决?


当然可以。这个实例其实只是提供解决此类问题的基本思路,具体到每一个实际问题可以按照这个思路编写相应的程序来处理。多表的导入无法需要注意的只是导入的先后顺序。
作者: xyhecho2002    时间: 2012-1-21 10:38
好!
作者: wu8313    时间: 2012-2-1 20:59
如果不采用mdb的话,同步数据,采用sql的发布和订阅,不用写很多的代码。
作者: gzzcd    时间: 2012-2-2 16:13
先收藏,再学习




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3