显示没有默认访问框架的Access GUI [英] Displaying an Access GUI without the default Access frame
问题描述
有没有办法告诉访问只显示窗体/报表而不显示访问窗口本身(访问窗体填充在里面的shell窗口)。
为此,我利用一些聪明人编写的代码并在网络上可用(我认为它最初由Terry Kreft编写?),并提到一些Windows API。
我有第一个:
声明函数apiShowWindow Libuser32 _
AliasShowWindow(ByVal hwnd As Long,_
ByVal nCmdShow As Long)As Long
全局常量SW_HIDE = 0
全局常量SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2
Global Const SW_SHOWMAXIMIZED = 3
和
函数fSetAccessWindow(nCmdShow As Long)
'用法示例
'最大化窗口:
' ?fSetAccessWindow(SW_SHOWMAXIMIZED)
'最小化窗口:
'?fSetAccessWindow(SW_SHOWMINIMIZED)
'隐藏窗口:
'?fSetAccessWindow(SW_HIDE)
'正常窗口:
'?fSetAccessWindow(SW_SHOWNORMAL)
Dim loX As Long
Dim loForm As Form
On Error Resume Next
设置loForm =屏幕。 ActiveForm
如果Err < ;> 0然后'没有Activeform
如果nCmdShow = SW_HIDE然后
MsgBox不能隐藏Access,除非窗体在屏幕上
其他
loX = apiShowWindow(hWndAccessApp,nCmdShow)
Err.Clear
End If
其他
如果nCmdShow = SW_SHOWMINIMIZED并且loForm.Modal = True然后
MsgBox无法最小化Access在屏幕上的这种形式:& (loForm.Caption +)
其他
如果nCmdShow = SW_HIDE和loForm.PopUp<> True Then
MsgBox无法在屏幕上隐藏Access:& (loForm.Caption +)
Else
loX = apiShowWindow(hWndAccessApp,nCmdShow)
End If
End If
End If
fSetAccessWindow =( loX<> 0)
End Function
,然后我会调用这个函数
'函数被autoexec调用宏'
...
fSetAccessWindow(SW_HIDE)
...
DoCmd.OpenForm my_Startup_Form
Forms(my_Startup_Form).Controls(my_Active_Control).SetFocus
屏幕会闪烁一点,主窗口会短暂出现,然后消失。我的专注窗口将单独显示。
Is there a way to tell access to only display the forms/reports without displaying the access window itself (the "shell" window that the access forms populate inside of).
To do so, I take advantage of a piece of code written by some clever guys and available on the net (I think it was originally written by Terry Kreft?) and referring to some windows API.
I have first this:
Declare Function apiShowWindow Lib "user32" _
Alias "ShowWindow" (ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long
Global Const SW_HIDE = 0
Global Const SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2
Global Const SW_SHOWMAXIMIZED = 3
and that
Function fSetAccessWindow(nCmdShow As Long)
'Usage Examples
'Maximize window:
' ?fSetAccessWindow(SW_SHOWMAXIMIZED)
'Minimize window:
' ?fSetAccessWindow(SW_SHOWMINIMIZED)
'Hide window:
' ?fSetAccessWindow(SW_HIDE)
'Normal window:
' ?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 "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 this form on screen:" & (loForm.Caption + " ")
Else
If nCmdShow = SW_HIDE And loForm.PopUp <> True Then
MsgBox "Cannot hide Access with this form on screen:" & (loForm.Caption + " ")
Else
loX = apiShowWindow(hWndAccessApp, nCmdShow)
End If
End If
End If
fSetAccessWindow = (loX <> 0)
End Function
When starting my program, I will then call the function this way
'function is called by autoexec Macro'
...
fSetAccessWindow (SW_HIDE)
...
DoCmd.OpenForm my_Startup_Form
Forms(my_Startup_Form).Controls(my_Active_Control).SetFocus
The screen will 'flicker' a little bit, and the main window will appear briefly, then disappear. My focussed window will then be displayed alone.
这篇关于显示没有默认访问框架的Access GUI的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!