Office中国论坛/Access中国论坛
标题: 打开另一指定数据库的指定窗体!!! [打印本页]
作者: zhengjialon 时间: 2003-1-6 16:59
不错。
作者: jiek 时间: 2003-1-8 23:36
标题: 打开另一指定数据库的指定窗体!!!
两个数据库进行交互,在其中一个数据库中,打开另一个数据库的窗体~
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编辑过]
作者: jiek 时间: 2003-1-10 02:34
好什么呀,斑竹,我是有苦自知呀!我用这段程序,在3个相关的数据库中相同的部分做了一个主控数据库控制这3个数据库,结果在打开的数据库的窗体中点击docmd.quit或 docmd.close指令的按钮时,经常会出现这样的空白页面,关都关不掉,只能用Ctrl+Alt+Del才能关闭。。。,一直 没找到问题在那里,那位高手帮忙找一下~
因文件在公司,无法传原文件让大家参考。。。
最后用shell,搞定,还不用api函数,呵呵
[此贴子已经被作者于2003-1-9 18:34:05编辑过]
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) |
Powered by Discuz! X3.3 |