ftmike
Messages postés6Date d'inscriptionmardi 30 novembre 2004StatutMembreDernière intervention20 septembre 2005
-
20 sept. 2005 à 14:17
ftmike
Messages postés6Date d'inscriptionmardi 30 novembre 2004StatutMembreDernière intervention20 septembre 2005
-
20 sept. 2005 à 15:20
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
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.
Tuning Max
Messages postés314Date d'inscriptionmercredi 15 juin 2005StatutMembreDernière intervention31 août 20061 20 sept. 2005 à 15:00
Je ne suis pas sûr d'avoir bien compris ton problème, mais sinon volà pour l'affichage des barres d'outils:
DoCmd.ShowToolbar "Nom_de_la_Barre", acToolbarYes
pour l'affichage des menus :
Set MenuBar = CommandBars.Add(Name:="Nom_de_la_Barre_de_menu", Position:=msoBarRight, MenuBar:=True)
With MenuBar
.Protection = msoBarNoMove
.Visible = True
End With
ftmike
Messages postés6Date d'inscriptionmardi 30 novembre 2004StatutMembreDernière intervention20 septembre 2005 20 sept. 2005 à 15:15
En fait, il doit y avoir un bin's dans ma programmation car lorsque j'essaie de ré-afficher la barre d'outils avec une commande du type :
DoCmd.ShowToolbar "Nom_de_la_Barre", acToolbarYes
Cela ne fonctionne pas et rien ne s'affiche, donc je pense que mon problème vient de la manière dont je masque la fenêtre principale d'access qui doit empêcher le ré-affichage des barres à postériori ...
J'espère avoir préciser mon souci et je te remercie de tenter de m'aider à le résoudre.
ftmike
Messages postés6Date d'inscriptionmardi 30 novembre 2004StatutMembreDernière intervention20 septembre 2005 20 sept. 2005 à 15:20
De plus lorsque j'essaie d'insérer :
Set MenuBar = CommandBars.Add(Name:="Nom_de_la_Barre_de_menu", Position:=msoBarRight, MenuBar:=True)
With MenuBar
.Protection = msoBarNoMove
.Visible = True
End With
dans ma commande de ré-affichage d'access qui donne alors :
Private Sub CacheAccessWindow_Click()
On Error GoTo Err_CacheAccessWindow_Click
Set MenuBar = CommandBars.Add(Name:="Nom_de_la_Barre_de_menu", Position:=msoBarRight, MenuBar:=True)
With MenuBar
.Protection = msoBarNoMove
.Visible = True
End With