设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
跳转到指定楼层
1#
发表于 2010-12-19 11:52:29 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 todaynew 于 2010-12-20 11:28 编辑

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

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





本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 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

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

呵呵,请重新下载实例即可。
4#
 楼主| 发表于 2010-12-20 13:41:26 | 显示全部楼层
ycxchen 发表于 2010-12-20 12:03
重新下载例子行了,请问,如果不发到桌面,直接在保存文件的目录下运行要修改什么代码?

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

T版:

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

选择文件夹后,按了取消吧?
7#
 楼主| 发表于 2010-12-21 12:25:25 | 显示全部楼层
ycxchen 发表于 2010-12-21 09:34
没有选择文件按了取消,可能要加个空值判断的代码吧?

对!是需要加空值返回的代码,你自己试试。
8#
 楼主| 发表于 2010-12-21 17:07:37 | 显示全部楼层
本帖最后由 todaynew 于 2010-12-21 17:08 编辑
ycxchen 发表于 2010-12-21 16:59
例子中只是单一的表,要是多几个存在一对多关系的表,不知本例子的办法能否解决?


当然可以。这个实例其实只是提供解决此类问题的基本思路,具体到每一个实际问题可以按照这个思路编写相应的程序来处理。多表的导入无法需要注意的只是导入的先后顺序。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-29 00:55 , Processed in 0.096205 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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