设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 打开另一指定数据库的指定窗体!!!

[复制链接]
跳转到指定楼层
1#
发表于 2003-1-8 23:36:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
两个数据库进行交互,在其中一个数据库中,打开另一个数据库的窗体~

Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" _
(ByVal hwnd As Long,ByVal nCmdShow As Long) As Long
Private Declare Function SetForegroundWindow Lib "user32" _
(ByVal hwnd As Long) As Long

'dbname为打开数据库的完整名称如c:\1.mdb
'frmname为要开启数据库的表单,如test
'用法为opendbfrm("c:\1.mdb","test")
function openDbFrm(byval dbName as string,byval frmName as string)

Dim appAccess As Object
Dim xx As Long

Set appAccess = GetObject(dbName)
if not appAccess.Visible  then appAccess.Visible = True
'成为前台
xx = SetForegroundWindow(appAccess.hWndAccessApp)
'最大化数据库
xx=apiShowWindow(appAccess.hWndAccessApp,3)
'打开窗体
appAccess.DoCmd.OpenForm frmName
'最大化窗体
DoCmd.Maximize

'释放物件
set appAccess=nothing
End function

也就是说,只要定义了一个access.application物件,就可以控制另一个数据库,稍作修改,即可以打开报表,查询等

唯一存在的缺陷是,有时候物件不能完全释放;打开的数据库跟当前窗口是同一数据源时,会有所冲突

请大家完善


[此贴子已经被作者于2003-1-8 15:36:26编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2003-1-6 16:59:00 | 只看该作者
不错。
3#
 楼主| 发表于 2003-1-10 02:34:00 | 只看该作者
好什么呀,斑竹,我是有苦自知呀!我用这段程序,在3个相关的数据库中相同的部分做了一个主控数据库控制这3个数据库,结果在打开的数据库的窗体中点击docmd.quit或 docmd.close指令的按钮时,经常会出现这样的空白页面,关都关不掉,只能用Ctrl+Alt+Del才能关闭。。。,一直 没找到问题在那里,那位高手帮忙找一下~

因文件在公司,无法传原文件让大家参考。。。

最后用shell,搞定,还不用api函数,呵呵
[此贴子已经被作者于2003-1-9 18:34:05编辑过]

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-14 10:12 , Processed in 0.145079 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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