从后台和任务栏隐藏MS Access

时间:2012-10-10 14:54:12

标签: vba ms-access

我期待在项目运行时隐藏项目的Access背景,使其更具专业性,并使其像独立应用程序一样运行。我正在使用Access 2003,并且在加载项目时表单已经打开。我想在该表单的Private Sub Form_Open(Cancel As Integer)中添加一些代码来隐藏Access背景。

2 个答案:

答案 0 :(得分:1)

以下内容适用于旧版本的Access(在Access 2003上测试):

Option Compare Database 
Option Explicit 

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) 

    Dim loX As Long 
    Dim loForm As Form 
    On Error Resume Next 
    Set loForm = Screen.ActiveForm 

    If Err <> 0 Then 
        loX = apiShowWindow(hWndAccessApp, nCmdShow) 
        Err.Clear 
    End If 

    If nCmdShow = SW_SHOWMINIMIZED And loForm.Modal = True Then 
        MsgBox "Cannot minimize Access with " _ 
        & (loForm.Caption + " ") _ 
        & "form on screen" 
    ElseIf nCmdShow = SW_HIDE And loForm.PopUp <> True Then 
        MsgBox "Cannot hide Access with " _ 
        & (loForm.Caption + " ") _ 
        & "form on screen" 
    Else 
        loX = apiShowWindow(hWndAccessApp, nCmdShow) 
    End If 
    fSetAccessWindow = (loX <> 0) 
End Function 

只需致电fSetAccessWindow(0)隐藏,fSetAccessWindow(1)即可显示。或者,使用fSetAccessWindow(2)fSetAccessWindow(3)来显示最小化/最大化。您也可以使用Global Const。注意:访问将在任务栏中隐藏。

如果它不适用于Access 2010,则可以使用另一个可行的代码:http://www.tek-tips.com/faqs.cfm?fid=2562

表单必须是模态,否则无效。如果由于某种原因你搞砸了并且Access仍然在后台运行但没有在任务栏或任务管理器中显示,请再次双击任何Access项目(因为Access仍在运行,所以不会发生任何事情),然后按ALT + TAB键到达Access图标(它应该神奇地显示)。没有什么事情再次发生,因为它是隐藏的,但现在可以用ALT + F4关闭它,如果它仍然有焦点,从而阻止你重新启动你的计算机......

答案 1 :(得分:0)

在Access 2003中,一个简单的方法似乎就是制作表单 弹出 2.边框样式无 3.在表单加载事件上运行最大化命令

Private Sub Form_Load()
   DoCmd.Maximize
End Sub