-------------------------------------------------------------------------------- API: 管理 Access 窗口 -------------------------------------------------------------------------------- 通過一函數(shù)已定義的常量 fSetAccessWindow 實現(xiàn)最大化、最小化 ACCESS 的主窗口 該函數(shù)能用來完全隱藏 Access 窗口并將你自己的窗體顯示在桌面上。在彈出式窗體的 Open 事件中使用 SW_HIDE 參數(shù)調(diào)用 fSetAccessWindow 函數(shù)實現(xiàn)。 注意:如果你隱藏了 Access 主窗口,要確定你有良好的出錯處理。因為主窗口隱藏后,一旦引發(fā)錯誤,并出錯提示窗口上點擊了“結束”按鈕,這樣不會使 Access 主窗口可見,并退出你自己的窗體。推薦你在你的錯誤處理程序中使用 SW_SHOWNORMAL 參數(shù)調(diào)用 fSetAccessWindow 函數(shù)來顯示 Access 主窗口。 如果由于別的原因,Access 主窗口不能顯示,那么你將只能從任務欄中關閉你的 mdb,在 Win 9x 中使用 Control-Alt-Delete 來結束任務,在 Win NT 、2000 或 XP 中,可以右鍵單擊任務欄選擇任務管理器來選擇該 mdb 結束任務。 '************ 代碼開始 ********** Global Const SW_HIDE = 0 Global Const SW_SHOWNORMAL = 1 Global Const SW_SHOWMINIMIZED = 2 Global Const SW_SHOWMAXIMIZED = 3 Private Declare Function apiShowWindow Lib "user32" _ Alias "ShowWindow" (ByVal hwnd As Long, _ ByVal nCmdShow As Long) As Long Function fSetAccessWindow(nCmdShow As Long) ' 使用舉例 ' 最大化 Access 窗口 ' ?fSetAccessWindow(SW_SHOWMAXIMIZED) ' 最小化 Access 窗口 ' ?fSetAccessWindow(SW_SHOWMINIMIZED) ' 隱藏 Access 窗口 ' ?fSetAccessWindow(SW_HIDE) ' 正常顯示 Access 窗口 ' ?fSetAccessWindow(SW_SHOWNORMAL) ' Dim loX As Long Dim loForm As Form On Error Resume Next Set loForm = Screen.ActiveForm If Err <> 0 Then ' 沒有活動窗體 no Activeform If nCmdShow = SW_HIDE Then MsgBox "除非屏幕上有一個窗口,否則不能隱藏 Access 主窗口!" _ & vbcr & vbcr _ & "Cannot hide Access unless " _ & "a form is on screen" Else loX = apiShowWindow(hWndAccessApp, nCmdShow) Err.Clear End If Else If nCmdShow = SW_SHOWMINIMIZED And loForm.Modal = True Then MsgBox "不能由屏幕上的 " & (loForm.Caption + " ") & "窗體最小化 Access 主窗口!" _ & vbcr & vbcr _ & "Cannot minimize Access with " _ & (loForm.Caption + " ") _ & "form on screen" ElseIf nCmdShow = SW_HIDE And loForm.PopUp <> True Then MsgBox "不能由屏幕上的 " & (loForm.Caption + " ") & "窗體隱藏 Access 主窗口!" _ & vbcr & vbcr _ & "Cannot hide Access with " _ & (loForm.Caption + " ") _ & "form on screen" Else loX = apiShowWindow(hWndAccessApp, nCmdShow) End If End If fSetAccessWindow = (loX <> 0) End Function '************ 代碼結束 ********** 未經(jīng)許可,請勿轉(zhuǎn)載 |
|站長郵箱|小黑屋|手機版|Office中國/Access中國
( 粵ICP備10043721號-1 )
GMT+8, 2025-7-13 08:18 , Processed in 0.098813 second(s), 23 queries .
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.