Gestion d'affichage des barres de menu et d'outils après avoir masquer Access

ftmike Messages postés 6 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 20 septembre 2005 - 19 sept. 2005 à 16:29
cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 - 25 sept. 2005 à 18:58
Bonjour, je suis dans une impasse totale, je ne comprends plus. Aidez-moi s'il vous plait !!!

Voilà, j'ai réaliser une base access et je l'ouvre par le biais d'un formulaire qui lors de son chargement masque la fenêtre principale du logiciel Access pour ne rendre visible que le formaulaire, en VB, cela donne cela :

Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long

Private Sub Form_Load()
Dim nCmdShow As Long
Dim loX As Long
Dim loForm As Form
bWindowHidden = False
nCmdShow = SW_HIDE
loX = apiShowWindow(hWndAccessApp, nCmdShow)
bWindowHidden = True
End Sub

Jusqu'ici tout va bien ... mais bien entendu il me faut gérer le retour à la normale c'est à dire ré-afficher la fenêtre principale d'access avec l'affichage de la fenêtre de base de donnée + les barres d'outils intégrées ainsi que la barre de menu. Et c'est là que le bas blesse !!!

En fait, j'ai créé un formulaire administrateur au sein duquel un bouton doit me permettre de basculer sur l'affichage classique (base de donnée + barres d'outils + barre de menu) seulement je parviens uniquement à ré-afficher la fenêtre principale du logiciel access ainsi que la fenêtre de base de donnée. Afin d'effectuer la maintenance de ma base, il est vraiment indispensable que je ré-affiche également les barres d'outils et la barre de menu.

Pour l'instant, j'ai créé un module qui doit me gérer le retour à un affichage classique :

Option Compare Database
Option Explicit


Global Const SW_HIDE = 0
Global Const SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2
Global Const SW_SHOWMAXIMIZED = 3


Public bWindowHidden As Boolean


Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long


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 'no Activeform
Error (Error$)
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

Et j'utilise ce module par le biais d'une commande sur click intégrée dans mon formulaire d'administration :

Private Sub CacheAccessWindow_Click()
On Error GoTo Err_CacheAccessWindow_Click

bWindowHidden = True
fSetAccessWindow (SW_SHOWMAXIMIZED)
bWindowHidden = False


DoCmd.SelectObject acTable, , True

Exit_CacheAccessWindow_Click:
Exit Sub


Err_CacheAccessWindow_Click:
MsgBox Err.Description
Resume Exit_CacheAccessWindow_Click

End Sub

Résultat, au final, tout marche à l'exception de l'affichage de la barre de menu et des barres d'outils d'origine !!!

Ah ! Ah ! Ah ! Ah ! Ah ! Ah ! Ah ! Ah !, Ca m'énerve, ça fait des plombes que je cherche et je crois avoir atteint la limite de mes compétences ... Aidez-moi s'il vous plait.

D'avance merci.

°oO° Mike °Oo°

1 réponse

cboulas Messages postés 2641 Date d'inscription mercredi 2 juin 2004 Statut Membre Dernière intervention 8 janvier 2014 16
25 sept. 2005 à 18:58
Salut,

Alors j'ai eu le même pb que toi mais pour un autre soft, voici ce que tu note comme Constantes :
Global Const SW_HIDE = 0
Global Const SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2
Global Const SW_SHOWMAXIMIZED = 3

Il faut savoir que ces numéro 0,1,2,3 ne sont pas les seuls, ainsi il éxiste aussi 4,5,6,7,8..... à toit de trouver celui qui ferme correctement Access ou qui la réaffiche je sais plus


Chris...
Web : Firstruner
0
Rejoignez-nous