(答) 通過一函數已定義的常量fSetAccessWindow實現。
該函數能用來完全隱藏Access窗口並將你自己的窗體顯示在桌面上。在彈出式窗體的Open事件中使用SW_HIDE參數調用fSetAccessWindow函數實現。
注意:如果你隱藏了Access主窗口,要確定你有良好的出錯處理。因為主窗口隱藏後,一旦引發錯誤,並出錯提示窗口上點擊了“結束”按鈕,這樣不會使Access主窗口可見,並退出你自己的窗體。推薦你在你的錯誤處理程序中使用SW_SHOWNORMAL參數調用fSetAccessWindow函數來顯示Access主窗口。
如果由於別的原因,Access主窗口不能顯示,那麼你將只能從任務欄中關閉你的mdb,在Win9x中使用Control-Alt-Delete來結束任務,在WinNT、2000或XP中,可以右鍵單擊任務欄選擇任務管理器來選擇該mdb結束任務。
'************代碼開始**********
GlobalConstSW_HIDE=0
GlobalConstSW_SHOWNORMAL=1
GlobalConstSW_SHOWMINIMIZED=2
GlobalConstSW_SHOWMAXIMIZED=3 PrivateDeclareFunctionapiShowWindowLib"user32"_
Alias"ShowWindow"(ByValhwndAsLong,_
ByValnCmdShowAsLong)AsLong
FunctionfSetAccessWindow(nCmdShowAsLong)
'使用舉例
'最大化Access窗口
' ?fSetAccessWindow(SW_SHOWMAXIMIZED)
'最小化Access窗口
' ?fSetAccessWindow(SW_SHOWMINIMIZED)
'隱藏Access窗口
' ?fSetAccessWindow(SW_HIDE)
'正常顯示Access窗口
' ?fSetAccessWindow(SW_SHOWNORMAL)
'
DimloX AsLong
DimloFORMAsFORM
OnErrorResumeNext
SetloFORM=Screen.ActiveFORM
IfErr<>0Then'沒有活動窗體noActiveFORM
IfnCmdShow=SW_HIDEThen
MsgBox"除非屏幕上有一個窗口,否則不能隱藏Access主窗口!"_
&vbcr&vbcr _
&"CannothideAccessunless"_
&"aFORMisonscreen"
Else
loX=apiShowWindow(hWndAccessApp,nCmdShow)
Err.Clear
EndIf
Else
IfnCmdShow=SW_SHOWMINIMIZEDAndloFORM.Modal=TrueThen
MsgBox"不能由屏幕上的"&(loFORM.Caption+"") &"窗體最小化Access主窗口!"_
&vbcr&vbcr _
&"CannotminimizeAccesswith"_
&(loFORM.Caption+"")_
&"FORMonscreen"
ElseIfnCmdShow=SW_HIDEAndloFORM.PopUp<>TrueThen
MsgBox"不能由屏幕上的"&(loFORM.Caption+"") &"窗體隱藏Access主窗口!"_
&vbcr&vbcr _
&"CannothideAccesswith"_
&(loFORM.Caption+"")_
&"FORMonscreen"
Else
loX=apiShowWindow(hWndAccessApp,nCmdShow)
EndIf
EndIf
fSetAccessWindow=(loX<>0)
EndFunction
'************代碼結束**********