FAQ MS-Access
FAQ MS-AccessConsultez toutes les FAQ
Nombre d'auteurs : 140, nombre de questions : 926, dernière mise à jour : 15 juin 2021
- Comment afficher/masquer les barres de menu d'environnement Access sans utiliser le code ?
- Comment afficher une image au démarrage de mon application ?
- Comment utiliser un assistant pour afficher une info à l'utilisateur ?
- Comment changer l'apparence du curseur ?
- Comment changer un curseur en pointeur ?
- Comment changer le gris (couleur de fond) dans Access ?
- Comment afficher le sablier pendant un traitement ?
Une fois votre application terminée, l'utilisateur doit voir ses possibilités d'actions retreintes.
Vous pouvez par exemple cacher les barres de menu Access. Pour cela, rendez-vous dans le menu Outils puis Démarrage.
Pour les rétablir, maintenez la touche MAJ enfoncée lors du chargement de la base de données et modifiez à nouveau les options ci-dessus.
Pour qu'une image apparaisse pendant le chargement d'Access au démarrage de votre application, il suffit de mettre une image BMP dans le même dossier avec le même nom que le fichier de l'application (.mdb ou .mde).
With
Assistant.NewBalloon
.BalloonType
=
msoBalloonTypeBullets
.Icon
=
msoIconTip
.Button
=
msoButtonSetOk
.Heading
=
"Faites un choix"
.Labels
(
1
).Text
=
"NAS"
.Labels
(
2
).Text
=
"ronde 150%/h"
.Labels
(
3
).Text
=
"vélage 90pts +2 h"
.Show
End
With
private
Declare
Function
SetSystemCursor Lib
"user32"
(
ByVal
hcur As
Long
, ByVal
id As
Long
) As
Long
private
Declare
Function
LoadCursor Lib
"user32"
Alias "LoadCursorA"
(
ByVal
hInstance As
Long
, ByVal
_
lpCursorName As
Long
) As
Long
private
Sub
change_curseur
(
)
Call
SetSystemCursor
(
LoadCursor
(
0
, 32514
), 32512
)
Call
SetSystemCursor
(
LoadCursor
(
0
, 32515
), 32513
)
End
Sub
private
Sub
restaure
(
)
Call
SetSystemCursor
(
LoadCursor
(
0
, 32512
), 32512
)
Call
SetSystemCursor
(
LoadCursor
(
0
, 32513
), 32513
)
End
Sub
Liste d'apparences disponibles :
32512 flèche ;
32513 curseur en I ;
32514 sablier ;
32515 croix ;
32516 flèche vers le haut ;
32640, 32642, 32643, 32644, 32645, 32646 doubles flèches de redimensionnement ;
32648 stationnement interdit ;
32650 flèche + sablier.
Curseur personnalisé :
private
Sub
change_curseur
(
)
Call
SetSystemCursor
(
LoadCursorFromFile
(
"D:\curseur.ani"
), 32513
)
End
Sub
' Dans l'événement MouseMove de la zone de texte mettre
Screen.MousePointer
=
1
' Ne pas oublier de mettre dans le MouseMove du formulaire
Screen.MousePointer
=
0
' Sans quoi le pointeur restera toujours la flèche
Dans un premier temps, créez un nouveau module, collez-y le code suivant et enregistrez-le avec le nom que vous souhaitez :
' Constante pour modification du fond
Private
Const
GCL_HBRBACKGROUND =
-
10
' Crée une brosse unie
Private
Declare
Function
CreateSolidBrush Lib
"gdi32"
(
ByVal
crColor As
Long
) As
Long
' Crée une brosse à partir d'une image (pour l'utilisation en mosaïque uniquement)
Private
Declare
Function
CreatePatternBrush Lib
"gdi32"
(
ByVal
hBitmap As
Long
) As
Long
' Modifier une fenêtre selon sa classe
Private
Declare
Function
SetClassLong Lib
"user32"
Alias "SetClassLongA"
(
ByVal
hwnd As
Long
, ByVal
nIndex As
Long
, ByVal
dwNewLong As
Long
) As
Long
' Trouver l'identifiant d'une fenêtre
Private
Declare
Function
FindWindowEx Lib
"user32"
Alias "FindWindowExA"
(
ByVal
hWnd1 As
Long
, ByVal
hWnd2 As
Long
, ByVal
lpsz1 As
String
, ByVal
lpsz2 As
String
) As
Long
' Rafraîchir l'affichage
Private
Declare
Function
InvalidateRect Lib
"user32"
(
ByVal
hwnd As
Long
, ByVal
lpRect As
Any, ByVal
bErase As
Long
) As
Long
' wpv_arg est soit un nombre représentant une couleur(=RGB(xxx,xxx,xxx)), soit un chemin vers un fichier
Public
Sub
SetBackGround
(
wpv_Arg As
Variant
)
' Object Image temporaire
Dim
wlo_Image As
Object
' Identifiant de la brosse
Dim
wlv_Brush As
Long
' Identifiant de la fenêtre
Dim
wlv_Hwnd As
Long
' Si argument = nom de fichier
If
Not
IsNumeric
(
wpv_Arg) Then
' Charge l'image dans un objet temporaire
Set
wlo_Image =
LoadPicture
(
wpv_Arg)
' Crée une brosse mosaïque à partir de l'image chargée
wlv_Brush =
CreatePatternBrush
(
wlo_Image.handle
)
' Libère la mémoire occupée par l'objet image temporaire
Set
wlo_Image =
Nothing
' Si l'argument est numérique
Else
' Crée une brosse unie
wlv_Brush =
CreateSolidBrush
(
wpv_Arg)
End
If
' Recherche l'identifiant de la fenêtre de fond de la base (de classe "MDIClient")
wlv_Hwnd =
FindWindowEx
(
Application.hWndAccessApp
, 0
, "MDIClient"
, vbNullString
)
' Modifie l'identifiant de la brosse servant à dessiner le fond de la fenêtre
SetClassLong wlv_Hwnd, GCL_HBRBACKGROUND, wlv_Brush
' Rafraîchit l'affichage pour dessiner le fond d'écran avec la nouvelle brosse
InvalidateRect wlv_Hwnd, vbNullString
, 1
End
Sub
Puis, si vous souhaitez mettre une autre couleur, exécutez par exemple la ligne :
SetBackGround 16570023
Et si vous souhaitez mettre une image :
SetBackGround "C:\MonImage.jpg"
Préférez l'utilisation d'images en mosaïque.
Lors d'un traitement prenant beaucoup de temps, il est parfois pratique d'afficher le sablier pendant ce traitement pour signaler à l'utilisateur.
Ce code est très simple :
'Affichage du sablier pendant le traitement
DoCmd.Hourglass
True
' Taper ici le code de traitement
' Repasse en mode affichage classique (flèche dans mon cas)
DoCmd.Hourglass
False
Remarque :
dans Microsoft Windows 2000 et Microsoft Windows XP, il s'agit de l'icône que vous définissez pour "Occupé" dans la boîte de dialogue Propriétés de la souris
du panneau de configuration de Windows. Il s'agit par défaut d'une icône de sablier animée.