0
我對Access 2003 MDB項目使用Access 2007,並且在嘗試顯示查詢結果時遇到一些問題。這裏沒什麼特別的:在隱藏背景Access主窗口時顯示查詢結果
DoCmd.OpenQuery "myQuery", acViewNormal
在一個簡單的形式,它的工作很好。不過,我躲在後臺訪問窗口下面的代碼:
Private Declare Function apiShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Global Const SW_HIDE = 0
Global Const SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2
Global Const SW_SHOWMAXIMIZED = 3
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(1)帶回了全接口,但我想在這裏只顯示查詢結果,而不是Access的完整界面。可能嗎?有些用戶運行一個批處理文件(不知道這是否會造成任何影響)數據庫:
start msaccess /runtime "myFile.mdb"
而且,因爲我所有的形式是情態動詞(必須是沒有界面工作或Windows只是不」 t顯示),查詢結果將顯示在後臺,無法設置焦點(用戶必須關閉活動應用程序窗口才能執行此操作)。
構建一個使用myQuery作爲其記錄源的表單。然後,而不是'DoCmd.OpenQuery「myQuery」',打開表單。這應該與隱藏的應用程序窗口一起工作。 – HansUp
是的,它應該。只是想知道是否有辦法爲我節省一些時間,但我猜想爲它建立一個表格並不是很長。 – dnLL
我不認爲有另一種方式,因爲你不能直接打開查詢,並讓它成爲模態。我認爲在隱藏Access應用程序窗口時,非模態應用程序片段不可見。 – HansUp