FAQ MS-Access

FAQ MS-AccessConsultez toutes les FAQ
Nombre d'auteurs : 140, nombre de questions : 926, dernière mise à jour : 15 juin 2021
Sommaire→VBA→Interface et graphisme- Comment cacher une barre d'outils ?
- Comment enlever toutes les barres de menu ?
- Comment faire apparaître ou disparaître la barre des menus par le code ?
- Comment cacher les barres système et d'outils de mon application ?
- Comment insérer un saut de ligne dans une boîte de dialogue ?
- Comment créer un formulaire automatique lié à une table ?
- Comment désactiver le rafraîchissement de l'écran (figer l'écran) ?
- Comment connaître la résolution de l'écran ?
- Comment déterminer un code couleur quelconque dans Access ?
- Que faire si mes textes en info-bulle ne s'affichent pas ?
- Comment afficher l'heure dynamique dans un formulaire ?
- Comment redimensionner la fenêtre active (par ex. le formulaire en cours) en VBA ?
- Comment retrouver les composantes rouge, vert, bleu d'un code couleur de type Long ?
- Comment retrouver la couleur d'un pixel à l'écran ?
- Comment afficher ou masquer la fenêtre de base de données ?
- Comment forcer le rafraîchissement de l'écran ?
- Comment utiliser les événements clavier ? (exemple, détecter lorsque l'utilisateur saisit : Ctrl+C) ?
- Comment activer l'affichage des fenêtres dans la barre des tâches depuis VBA ?
- Comment réorganiser les fenêtres horizontalement ou verticalement en VBA ?
11.5.1. Interface et graphisme Trucs et Astuces
(7)
DoCmd.ShowToolbar "NomBarreOutil", acToolbarNoPour les déactiver :
Dim i As Integer
For i = 1 To Application.CommandBars.Count
DoCmd.ShowToolbar Application.CommandBars.item(i).name, acToolbarNo
NextEt pour les réactiver :
Dim i As Integer
For i = 1 To Application.CommandBars.Count
DoCmd.ShowToolbar Application.CommandBars.item(i).name, acToolbarWhereApprop
NextPour la faire disparaître :
DoCmd.ShowToolbar "barre menu", acToolbarNoPour la faire apparaître :
DoCmd.ShowToolbar "barre menu", acToolbarYes
Faire un clic droit sur la barre des menus puis sélectionnez Personnaliser et dans l'onglet Barre d'outils regardez l'orthographe de la barre des menus.
Allez dans :
Menu outil/démarrage
Décochez les cases suivant les menus que vous voulez voir disparaître.
MsgBox "ligne1" & vbCrLf & "ligne2"Function CreateInstantForm(ByVal Tbl As String)
DoCmd.SelectObject acTable, Tbl, True
DoCmd.RunCommand acCmdNewObjectAutoForm
End FunctionApplication.Echo FalseIl faut faire attention à réactiver le rafraîchissement grâce à :
Application.Echo TrueIl faudra également prévoir une gestion des erreurs pour éviter une sortie non désirée de la procédure.
Voici ci-dessous des liens intéressants sur le sujet.
Lien : http://www.mvps.org/accessfr/general/gen0002.htm
Lien : http://www.mvps.org/accessfr/apis/api0029.htm
Rappel :
- Les constantes des couleurs Windows vous permettent de récupérer les couleurs choisies par chaque utilisateur, dans le panneau de contrôle de Windows. Si vous les utilisez, vos utilisateurs pourront recolorer eux-mêmes votre application (petit détail très apprécié :) ). Aide Access, chapitre Constantes Couleurs système. Ou bien, tapez " vbButtonFace " dans un module, appuyez sur F1.
- Les constantes vbWhite, vbBlack, etc. sont disponibles pour les 16 couleurs de base : Aide Access, chapitre Constantes de couleurs. Ou bien, tapez " vbWhite " dans un module, appuyez sur F1.
- La fonction (obsolète) QbColor() renvoie un des 16 codes couleur ci-dessus, à partir d'un nombre (0 à 15).
- La fonction RGB() renvoie n'importe quelle couleur, à partir des trois valeurs Red, Green, Blue.
- Pour choisir n'importe quelle couleur et coller son code dans votre module VBA :
- créez un nouveau formulaire (vous ne le garderez pas, sauf pour des manips comme celle-ci) ;
- sélectionnez une section quelconque, affichez ses propriétés ;
- dans l'onglet Format, cliquez dans Couleur fond ;
- cliquez sur le bouton "..." pour ouvrir la boîte de dialogue des couleurs ;
- choisissez votre couleur, éventuellement en cliquant sur Définir les couleurs personnalisées... ;
- cliquez sur OK ;
- appuyez sur Entrée pour visualiser votre couleur dans le fond de la section choisie.
Le code de la couleur est affiché dans la propriété Couleur fond.
Vous pouvez le copier/coller dans votre code, créer une (série de) constante(s)...
Exemple :
Public Const vbJaunePale = 13434879Il suffit de supprimer les textes et de les recréer.
Il faut utiliser l'événement Timer du formulaire.
Dans un premier temps, allez dans les propriétés du formulaire, onglet événement et réglez l'Intervalle minuterie, par exemple à 1000 pour une seconde ou 60 000 pour une minute, etc.
Puis insérez ce code dans le formulaire :
Private Sub Form_Timer()
Me.Texte1 = Now
End SubIl suffit d'utiliser la méthode MoveSize de l'objet Docmd.
Consultez l'aide Access pour le détail des arguments.
Rappelons que le code d'une couleur se calcule par les composantes RGB à l'aide de la formule :
Red + Green * 256 + Blue * 256 * 256.
Il nous suffit donc d'écrire la fonction inverse.
Public Sub ComposantesRGB(ByVal Couleur As Long, Red As Long, Green As Long, Blue As Long)
Blue = Int(Couleur / 65536)
Green = Int((Couleur - (65536 * Blue)) / 256)
Red = Couleur - ((Blue * 65536) + (Green * 256))
End Sub
Private Sub Command1_Click()
Dim Rouge As Long, Vert As Long, Bleu As Long
ComposantesRGB 9550940, Rouge, Vert, Bleu
LblRed.Caption = "Red = " & Rouge
LblGreen.Caption = "Green = " & Vert
LblBlue.Caption = "Blue = " & Bleu
End SubLien : FAQ VB
Si vous cherchez simplement à connaître la couleur d'un point dans un PictureBox, utilisez sa méthode Point(). Sinon, voici une méthode pour récupérer la couleur de n'importe quel pixel à l'écran.
Placez ce code dans un module standard :
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Public Type Couleur
red As Integer
green As Integer
blue As Integer
End Type
Public Function CouleurPixel (ByVal x As Long, ByVal y As Long) As Couleur
Dim pixel As Couleur, RGBPx As Long
RGBPx = GetPixel(GetDC(0&), x, y)
pixel.red = &HFF& And RGBPx
pixel.green = (&HFF00& And RGBPx) \ 256
pixel.blue = (&HFF0000 And RGBPx) \ 65536
CouleurPixel = pixel
End FunctionLa fonction CouleurPixel renvoie la couleur du pixel dont les coordonnées lui ont été passées en paramètres, dans une structure Couleur. Si vous voulez connaître la position du pointeur de souris, ajoutez ces déclarations dans le module standard :
Public Declare Function GetCursorPos Lib "user32" (lpPoint As PointAPI) As Long
Public Type PointAPI
X As Long
Y As Long
End TypeVoici maintenant un exemple où l'on utilise un Timer pour mettre dans un PictureBox la couleur du pixel survolé par la souris :
Private Sub Timer1_Timer()
Dim pixel As Couleur, CursPos As PointAPI
GetCursorPos CursPos
pixel = CouleurPixel(CursPos.X, CursPos.Y)
Picture1.BackColor = RGB(pixel.red, pixel.green, pixel.blue)
End SubLien : FAQ VB
Exemple pour afficher :
Docmd.SelectObject acTable, , TrueExemple pour masquer :
Docmd.SelectObject acTable, , True
Docmd.RunCommand acCmdWindowHideIl arrive que vous changiez par le code la couleur d'un texte, mais celle-ci ne sera prise en compte que plusieurs secondes plus tard.
Il vous suffit d'ordonner par le code le rafraîchissement de l'écran lorsque bon vous semble grâce à :
Me.RepaintLien : Comment désactiver le rafraîchissement de l'écran (figer l'écran) ?
Tout d'abord, dans les propriétés du formulaire, onglet Événement mettez l'attribut KeyPreview/Aperçu des touches à Oui.
Ensuite, dans ce même formulaire utilisez par exemple :
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyC And Shift = acCtrlMask Then
MsgBox ("Ctrl+C pressés")
End If
End SubOuvrez maintenant ce formulaire, appuyez sur les touches Ctrl+C comme pour faire un "copier" et constatez :).
Public Function AfficherFenetreBDT(Afficher As Boolean)
On Error GoTo Err_AfficherFenetreBDT
Application.SetOption "ShowWindowsInTaskbar", Afficher
Exit_AfficherFenetreBDT:
Exit Function
Err_AfficherFenetreBDT:
If Err.Number = 2091 Then 'Pas dans 97 & 95 sinon Erreur
Exit Function
Else
MsgBox "Erreur N°" & Err.Number & vbCrLf & Err.Description, 16
Resume Exit_AfficherFenetreBDT
End If
End Function
Sub Afficher()
AfficherFenetreBDT True
End Sub
' Appel de la fonction
Sub Masquer()
AfficherFenetreBDT False
End SubRappel : vous aurez le même résultat sans passer par VBA en allant dans : Menu Outils/Options onglet Affichage, cochez Fenêtres dans la barre des tâches.
À chaque commande de menu et de barre d'outils de Microsoft Access est associée une constante que vous pouvez utiliser avec la méthode RunCommand pour exécuter cette commande à partir de Visual Basic.
Ci-dessous les commandes pour réorganiser les fenêtres ouvertes, horizontalement ou verticalement :
Horizontalement :
DoCmd.RunCommand (acCmdTileHorizontally)Verticalement :
DoCmd.RunCommand (acCmdTileVertically)


