设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 975|回复: 6
打印 上一主题 下一主题

[Access本身] a.mdb如何打开另一个b.mdb,然后关闭自己,然后另一个b.mdb执行后再打开a.mdb

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2009-1-12 10:17:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
a.mdb如何打开另一个b.mdb,然后关闭自己,然后另一个b.mdb执行后再打开a.mdb
我试过,有时正常,有时不太正常,很奇怪
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-1-12 11:42:19 | 只看该作者
没这样操作过
关注[:50]
3#
发表于 2009-1-12 14:12:40 | 只看该作者
经过几次测试
A数据库添加代码
Option Compare Database
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
     (ByVal hwnd As Long, ByVal lpszOp As String, _
     ByVal lpszFile As String, ByVal lpszParams As String, _
     ByVal LpszDir As String, ByVal FsShowCmd As Long) _
     As Long
    Const SW_SHOW = 1
Private Sub Form_Load()
ShellExecute 0, "Open", "c:\b.mdb", "", "", SW_SHOW  '打开B数据库
Application.Quit 退出A.mdb
End Sub

B数据库代码差不多,不过事件上要调整一下.
Option Compare Database
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
     (ByVal hwnd As Long, ByVal lpszOp As String, _
     ByVal lpszFile As String, ByVal lpszParams As String, _
     ByVal LpszDir As String, ByVal FsShowCmd As Long) _
     As Long
    Const SW_SHOW = 1
   
Private Sub Form_Timer()  '这里为时间触发器1毫秒
ShellExecute 0, "Open", "c:\a.mdb", "", "", SW_SHOW '打开A数据库
Application.Quit 退出该数据库
End Sub
经过多次实验这种方法没有出现问题
如果b数据库在加载事件中则会出现不正常现象,可能太快了还来不及执行 所以加了一个1毫秒进行事件触发就没问题了
4#
发表于 2009-1-12 14:19:54 | 只看该作者
假如不用api,能不能达到目的。
5#
发表于 2009-1-12 14:20:46 | 只看该作者
原帖由 Henry D. Sy 于 2009-1-12 14:19 发表
假如不用api,能不能达到目的。


可以,只是个人习惯.
6#
发表于 2009-1-13 21:25:15 | 只看该作者
想知道这样做是为了什么。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 13:11 , Processed in 0.094485 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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