Carte du site
 Remerciements
 Netiquette
 Bugs
 Tables
 Requêtes
 Formulaires
 États (rapports)
 Modules
 APIs
 Chaînes
 Date/Time
 Général
 Ressources
 Téléchargeables

 Termes d'usage

APIs: Manipuler la fenêtre d'Access

Author(s)
Dev Ashish

(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, l'instruction 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, cliquer avec le bouton de droite sur la Taskbar et choisissez le Task Manager), puis, sélection de la base de données et cliquer 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 **********

© 1998-2001, Dev Ashish, All rights reserved. Optimized for Microsoft Internet Explorer