1

谁能告诉我如何在 Access 2007 中的表单上显示全屏,这样就没有工具栏等打开,所以没有人可以篡改任何东西?

干杯,尼克C

4

1 回答 1

1

有几种方法可以做到这一点。下面列出了我见过的最漂亮的之一。不幸的是,我不记得我是从哪里得到这个代码的,所以我不能给它应得的信用。

将以下代码发布到数据库中的新模块中。

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 DoAccessWindow(nCmdShow As Long)
' This function can minimize Access behind the scenes.

'Usage Examples
'Maximize window:
'       ?DoAccessWindow(SW_SHOWMAXIMIZED)
'Minimize window:
'       ?DoAccessWindow(SW_SHOWMINIMIZED)
'Hide window:
'       ?DoAccessWindow(SW_HIDE)
'Normal window:
'       ?DoAccessWindow(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 "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 "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
    End If
    DoAccessWindow = (loX <> 0)
End Function

现在您可以使用 DoAccessWindow() 函数来处理 Access 窗口。您可能想尝试使用 hide 选项,因为它完全隐藏了 Access 界面。警告一句,您要显示的任何表单都必须是 Popup 和 Modal 才能可见。

例如,在 Form_Open 事件中,您可以使用代码 DoAccessWindow(0) 隐藏 Access 的界面,然后在 Form_Close 事件中,您将使用 DoAccessWindow(1) 再次显示界面。

于 2009-07-18T05:17:49.317 回答