為使基於ACCESS開發的數據庫看起來更像是獨立的應用程序,嘗試採用彈出窗口+隱藏ACCESS主界面的方法實現。
窗口的彈出方式可直接通過ACCESS設計模式下的屬性表設置。在屬性表中,“所選內容的類型”選擇窗體,“其他”選項卡中將彈出方式設置為“是”,這樣,該窗體將以彈出窗口的形式啟動。屬性表中的“模式”表示窗體是否被獨佔,當為“是”時,當前窗口被獨佔,只能操作當前窗口,而不能操作ACCESS主界面的其他菜單;當為“否”時,可繞過當前窗口操作ACCESS主界面的其他菜單。
隱藏ACCESS主界面需利用代碼生成器編寫代碼實現。以下代碼為網絡搜索結果。
Option Compare Database
Option Explicit
'定義窗體各種顯示模式對應的數值,SW_HIDE等均為系統規定標示符
Const SW_HIDE = 0
Const SW_SHOWNORMAL = 1
Const SW_SHOWMINIMIZED = 2
Const SW_SHOWMAXIMIZED = 3Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
'連接user32庫,以調用系統中的apiShowWindow方法Function fSetAccessWindow(nCmdShow As Long)
'定義fSetAccessWindow函數,nCmdShow值將決定窗口的顯示模式Dim loX As Long
loX = apiShowWindow(hWndAccessApp, nCmdShow)
'調用apiShowWindow方法,其中hWndAccessApp為窗口句柄,以識別Access主界面End Function
Private Sub Form_Load()
'在窗體的加載屬性中調用定義好的fSetAccessWindow()函數,並將()中的數值傳遞給apiShowWindow,由apiShowWindow完成控制窗體大小、是否顯示fSetAccessWindow (SW_SHOWMINIMIZED)
End Sub
將這段代碼放入窗體的“事件——加載”屬性中,則該窗體在啟動時,將自動隱藏ACCESS主界面。
目前待解的問題是,我將這段代碼貼入登陸窗體中,啟動登陸窗體時,ACCESS主界面的確被隱藏,但登陸後跳轉到自設的導航窗體時,導航窗體和ACCESS主界面全部被隱藏。懷疑是apiShowWindow(hWndAccessApp, nCmdShow)方法中的hWndAccessApp窗口句柄並不能準確識別ACCESS主窗體,待解。
目前的替代措施時改用以下代碼,將ACCESS主界面最小化:
Private Sub Form_Load()
DoCmd.RunCommand acCmdAppMinimize
End Sub