Stuart McLachlan
stuart at lexacorp.com.pg
Wed Mar 2 15:19:56 CST 2011
The simple way is to select an object in the database window first and then hide the window
when it becomes active.
DoCmd.SelectObject acTable, , True
DoCmd.RunCommand acCmdWindowHide
The disadvantage of this is that it "flashes" the database window on top of everything.
The better way is to paste the following code into a module and call "ShowDbWindow False":
Option Compare Database
Option Explicit
Private Declare Function GetClassNameA Lib "user32" ( _
ByVal hwnd As Long, _
ByVal lpClassName As String, _
ByVal nMaxCount As Long) _
As Long
Private Declare Function GetWindow Lib "user32" ( _
ByVal hwnd As Long, _
ByVal wCmd As Long) _
As Long
Private Declare Function ShowWindowAsync Lib "user32" ( _
ByVal hwnd As Long, _
ByVal nCmdShow As Long) _
As Boolean
Private Const GW_HWNDNEXT = 2
Private Const GW_CHILD = 5
Private Const SW_HIDE = 0
Private Const SW_SHOW = 5
Private Function GetClassName( _
ByVal hwnd As Long) _
As String
Dim lpClassName As String
Dim lLen As Long
lpClassName = String(255, 32)
lLen = GetClassNameA(hwnd, lpClassName, 255)
If lLen > 0 Then
GetClassName = Left(lpClassName, lLen)
End If
End Function
Public Sub ShowDbWindow(ByVal bCmdShow As Boolean)
Dim hWndApp As Long
hWndApp = GetWindow(Application.hWndAccessApp, GW_CHILD)
Do Until hWndApp = 0
If GetClassName(hWndApp) = "MDIClient" Then
Exit Do
End If
hWndApp = GetWindow(hWndApp, GW_HWNDNEXT)
Loop
If hWndApp > 0 Then
hWndApp = GetWindow(hWndApp, GW_CHILD)
Do Until hWndApp = 0
If GetClassName(hWndApp) = "ODb" Then
Exit Do
End If
hWndApp = GetWindow(hWndApp, GW_HWNDNEXT)
Loop
End If
If hWndApp > 0 Then
ShowWindowAsync hWndApp, IIf(bCmdShow, SW_SHOW, SW_HIDE)
End If
End Sub
On 2 Mar 2011 at 15:39, Ralf Lister wrote:
> Hello to all of you,
>
>
>
> How do I hide the database window using code?
>
>
>
> TIA and Saludos
>
> Actuary Ralf Lister
>
> La Paz, Bolivia
>
> Registrado en ASFI
>
> No. Registro: Act.Mat. 001
>
> NIT: 1016725022
>
> Skype Name: ralf.martin.lister
>
> Tel.: 222 26 61, Cel. 70136531
>
> rlister at actuarial-files.com
>
> www.actuarial-files.com
>
> Environment
>
>
>
>