Home
Home

--- Soumis par Dev Ashish---

Manipuler la fenêtre d'Access.

(Q)    Comment peut-on maximiser ou minimiser la fenêtre Access, depuis le code?

(A)    Fournir une des constantes déclarées à la fonction fSetAccessWindow.

On peut utiliser cette fonction pour cacher la fenêtre Access et ne laisser que la   fenêtre de votre application: s'assurer que cette dernière, votre formulaire, est en mode PopUp et, dans sa procédure événementielle Open, appeler  fSetAccessWindow avec l'argument  SW_HIDE.

Avertissement:   Si vous cachez la fenêtre maîtresse d'Access, s'assurer de bien gérer les codes d'erreur: la fenêtre Access étant cachée, choisir END en cas d'erreur, dans le formulaire reportant l'erreur, ne vous ramène pas sous Access, mais vous laisse bêtement devant votre propre formulaire.  On vous recommande d'utiliser  fSetAccessWindow avec   SW_SHOWNORMAL comme étape finale lors de vos traitements d'erreur, dans ce cas. Si, pour quelque raison que ce soit, la fenêtre Access ne se montre pas, vous pouvez toujours fermer l'application depuis le "Task List" (Liste de tâches), disponible si vous effectuez un (1) Control-Alt-Delete (sous NT, clicquer avec le bouton de droite sur la Taskbar et choisissez le Task Manager), puis, sélection de la base de données et clicquer sur le bouton pour terminer la tâche sélectionnée (End Task).

'************ Code Start **********
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)
'Exemple d'utilisation
'Maximiser la fenêtre:
'       ?fSetAccessWindow(SW_SHOWMAXIMIZED)
'Minimiser la fenêtre
'       ?fSetAccessWindow(SW_SHOWMINIMIZED)
'Cacher la fenêtre:
'       ?fSetAccessWindow(SW_HIDE)
'Mode normal:
'       ?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 " _
                    & (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
    fSetAccessWindow = (loX <> 0)
End Function

'************ Code End **********