Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo
Sommaire > Formulaires > Présentation
        Comment enlever le sélecteur d'enregistrements ?
        Comment enlever les boutons de déplacement ?
        Masquer des champs en mode Feuille de données (DataSheet) ?
        Comment rendre des colonnes d'un formulaire invisibles ?
        Comment avoir plusieurs couleurs de contrôles ou fonds dans un formulaire en mode continu ?
        Comment afficher dans un formulaire une image se trouvant dans un dossier ?
        Comment créer des fenêtres de formulaire aux formes personnalisées ?
        Comment afficher un texte d'info bulle sur plusieurs lignes ?
        Comment mettre un plein écran une fenêtre de formulaire ?
        Comment avoir des formulaires de tailles différentes ?
        Comment remettre la barre tout en haut de mon form, là où il y a la croix ?
        Comment donner automatiquement la même présentation à mes formulaires ?
        Comment ajouter un menu dans un formulaire ?
        Comment faire disparaître les boutons des fenêtres (minimiser/maximiser/fermer) ?
        Comment donner de la couleur à mes boutons ?
        Comment mettre une icône dans la barre de titre d'un formulaire ?
        Ouvrir un état ou un formulaire en mode invisible
        Comment mettre en surbrillance toute la ligne active d'un formulaire ?
        Peut-on afficher sous forme de mot de passe (******) les caractères saisis dans une InputBox ?
        Changer la couleur de fond d'un bouton de commande.
        Comment mettre du gras dans un MsgBox
        Importer les barres d'outils ou de menus personnalisées
        Comment déployer en vba les sous feuilles de données d'un formulaire en mode feuille de données ?
        Comment modifier l'apparence des boutons de commande ? (Faire passer de Windows 98 au style Windows XP Access 2003)
        Comment créer un effet de relief lorsque la souris survole un contrôle ?
        Comment faire pour que mes chiffres soient précédés d'un 0 ? (01, 02, ...)
        Comment rendre un formulaire transparent ?
        Comment changer de page dans un onglet en VBA ?

precedent    sommaire    suivant   


Comment enlever le sélecteur d'enregistrements ?
auteur : Team Access
Dans les propriétés du formulaire, mettre à "non" la propriété "Afficher sélecteur".



Masquer des champs en mode Feuille de données (DataSheet) ?
auteur : Team Access
Dans ce mode, il n'est pas possible d'utiliser la propriété visible. Il faut donc masquer la colonne en mettant sa largeur à 0.


Comment rendre des colonnes d'un formulaire invisibles ?
auteur : Drosera
Pour masquer une colonne dans un formulaire en mode feuille de données, il faut utiliser la propriété ColumnHidden du contrôle. Cela marche aussi pour les tables et requêtes en passant par la collection Properties.

lien : Comment masquer/rendre invisible toutes les zones de texte vides ?

Comment avoir plusieurs couleurs de contrôles ou fonds dans un formulaire en mode continu ?
auteur : Team Access

Une fois le formulaire ouvert, allez dans Format / Mise en forme conditionnelle.
Remarque : cette fonction n'existe pas dans les versions antérieures à MS Access 2000.


Comment créer des fenêtres de formulaire aux formes personnalisées ?
auteur : Arkham46
Cela est possible, mais c'est assez complexe. Il faut faire appel à une API.


Comment afficher un texte d'info bulle sur plusieurs lignes ?
auteur : ARO
Dans la propriété du contrôle il faut appuyer sur Ctrl + Entrer à l'endroit où vous voulez retourner à la ligne.

lien : Comment avoir un TextBox (zone de texte) multiligne ?

Comment avoir des formulaires de tailles différentes ?
auteur : Drosera
Lorsque vous avez un formulaire ouvert en pleine écran et que vous voulez en ouvrir un autre de taille inférieure, cela modifie la taille du premier formulaire.

Il est possible de donner des tailles différentes aux formulaires, ceci en jouant sur la propriété fenêtre indépendante du formulaire.


Comment remettre la barre tout en haut de mon form, là où il y a la croix ?
auteur : Drosera
Changez la propriété Style bordure du formulaire, elle ne doit pas être réglée sur Aucun, sinon elle n'apparaît pas.


Comment donner automatiquement la même présentation à mes formulaires ?
auteur : Demco
Formatez un formulaire comme bon vous semble : police de caractère, couleur de fond, etc.
En mode création faites : Format / Format automatique
Puis Personnaliser et cochez Créer un nouveau format automatique basé sur le formulaire "MonFormulaire"
Puis dans les autres formulaires, faites format / format automatique et appliquez le format crée précédemment.


Comment ajouter un menu dans un formulaire ?
auteur : Tofalu
Pour créer un menu dans un formulaire comme sous VB6, il faut recourir à diverses fonctions de l'API Windows. Vous pouvez consulter ce tutoriel pour plus de détails : fr  Ajouter un menu dans un formulaire


Comment faire disparaître les boutons des fenêtres (minimiser/maximiser/fermer) ?
auteurs : Tofalu, Cafeine
Ouvrez les propriétés de votre fenêtre (formulaire ou état).
Allez dans l'onglet Format, puis mettez Boîte contrôle à Non.



Autre solution par le code en utilisant les API :
Option Explicit
 
Private Declare Function SetWindowLongA Lib "user32" _
  (ByVal hWnd As Long, ByVal nIndex As Long, _
  ByVal dwNewLong As Long) As Long
 
Private Declare Function GetWindowLongA Lib "user32" _
  (ByVal hWnd As Long, ByVal nIndex As Long) As Long
  
Const WS_MINIMIZEBOX = &H20000
Const WS_MAXIMIZEBOX = &H10000
Const GWL_STYLE = (-16)
 
Function RetireRestoreMaximize(ByVal hWndx As Long)
' hWndx est le handle de la fenêtre à modifier ...    
Dim L As Long
 
    L = GetWindowLongA(hWndx, GWL_STYLE)
    L = L And Not (WS_MINIMIZEBOX)
    L = L And Not (WS_MAXIMIZEBOX)
    L = SetWindowLongA(hWndx, GWL_STYLE, L)
    
End Function

Comment donner de la couleur à mes boutons ?
auteur : Demco
Vous devez utiliser une image en guise de bouton, car l'objet bouton de base avec Access ne permet pas de telles fantaisies.

  • prenez un objet "image"
  • définissez l'apparence en relief
  • sur l'évènement "click"
  • passez l'apparence en "3D enfoncé" [MonImage.SpecialEffect = 2] (ou même changer d'image)
  • exécutez le code
  • rétablissez l'apparence en "relief" [MonImage.SpecialEffect = 1]


Ouvrir un état ou un formulaire en mode invisible
auteur : Team Access
Utiliser l'argument acHidden de la méthode OpenForm ou OpenReport.
Exemple pour un formulaire :
DoCmd.OpenForm "MonForm",,,,,acHidden

Comment mettre en surbrillance toute la ligne active d'un formulaire ?
auteur : Maxence HUBICHE
Cette solution qui est plus du bricolage, mais qui fonctionne bien, va vous permettre de mettre en surbrillance toute une ligne, et une ligne seulement : Celle qui est active.
Attention ! Cette technique implique que vous soyez seul à travailler sur ta table !

Voici comment procéder :
Vous avez besoin d'une table ayant 2 champs (tblBackGrounds) :
Active (oui/non) => PK
Couleur(Objet OLE) => vous y mettrez, suivant la valeur de Active, un tout petit carré de couleur. Une image bitmap toute petite.
Dans la table que vous affichez actuellement, il vous faut aussi ajouter un champ Active (Oui/Non).

Vous devez modifier la source de votre sous-formulaire :
Select Tatabl.*, tblBackGrounds.Couleur
From Tatabl Inner Join tblBackGrounds On TaTabl.Active=tblBackGrounds.Active;
Vous devez modifier votre sous-formulaire :
Ajoutez-y le champ Couleur qui vient d'apparaître dans la liste des champs. Etendez le sur la largeur de la section détail. Mettez le en arrière-plan (format/Arrière-plan).
Modifiez sa propriété "mode d'affichage" de découpage à échelle.

Vous devez mettre un peu de code :
Dans l'évènement "Sur Activation", écrivez simplement :
        CurrentDb.Execute "UPDATE TaTabl Set Active=False"
        CurrentDb.Execute "UPDATE TaTabl Set Active=True Where [TonIdentifiant]=" & Nz(Me.TonIdentifiant, 0)
lien : fr Mise en surbrillance d'un enregistrement dans un formulaire

Peut-on afficher sous forme de mot de passe (******) les caractères saisis dans une InputBox ?
auteur : Team Access
Non.
Il faut contourner le problème en créant un formulaire personnalisé et en définissant le masque de saisie de la TextBox à Mot de passe.

lien : Comment masquer ce qui est tapé dans une zone de texte (pour un mot de passe) ?

Changer la couleur de fond d'un bouton de commande.
auteur : =JBO=
Il est possible d'utiliser le contrôle ActiveX CommandButton qui fait partie de la "bibliothèque" [Microsoft Forms x.y] (alias MSForms) livrée avec Microsoft Office, donc disponible sur les postes dotés de Word/Excel/PowerPoint/Access. (note: ici x.y dépend de la version d'Office installée sur le PC).

Marche à suivre :

La fenêtre du formulaire doit être en mode création.
Dans le menu [Insertion] cliquer sur [Contrôle ActiveX...].
Une boîte de dialogue permet de rechercher dans une liste le contrôle [Microsoft Forms x.y CommandButton].
Sélectionner la ligne et cliquer sur [OK].
Le contrôle apparaît sur le formulaire.

Comme c'est un contrôle ActiveX, son utilisation demande plus d'efforts et ne se programme qu'avec VBA.

Les propriétés ne sont pas présentées à l'identique d'un contrôle natif d'Access et ne disposent pas d'assistant. Les propriétés [Caption], [BackColor] et [ForeColor] sont visibles dans l'onglet [Autres] de la fenêtre des propriétés. La propriété [Font] n'est accessible que par programmation VBA (cf. l'explorateur d'objets pour inspecter sa structure - touche F2). Astuce : utilisez la fenêtre d'exécution (Ctrl + G) pour paramétrer "directement" ces propriétés qui sont alors correctement enregistrées. Par exemple, pour mettre le texte du bouton en italique, utilisez les propriétés de son objet Font en saisissant dans la fenêtre exécution :

Forms![NomDuForm]![NomDeBoutonActivX]..Font.Italic=True
Puis appuyez sur entrée.

L'événement [_Click] se programme directement dans l'environnement de développement. En effet, la fenêtre de propriétés ne permet pas de voir les événements "internes" d'un contrôle ActiveX. Dans le module du formulaire, il suffit donc d'écrire ceci pour exécuter du code sur clic du bouton :

Private Sub NomDuBoutonActivX_Click()
MsgBox "Vous avez cliqué."
End Sub

Comment mettre du gras dans un MsgBox
auteur : Frank
Vous devez dans un premier temps écrire une nouvelle fonction d'affichage de boite de message (MessageBox) :

Function FormattedMsgBox( _
 Prompt As String, _
 Optional Buttons As VbMsgBoxStyle = vbOKOnly, _
 Optional Title As String = vbNullString, _
 Optional HelpFile As Variant, _
 Optional Context As Variant) _
 As VbMsgBoxResult
    If IsMissing(HelpFile) Or IsMissing(Context) Then
        FormattedMsgBox = Eval("MsgBox(""" & Prompt & _
         """, " & Buttons & ", """ & Title & """)")
    Else
        FormattedMsgBox = Eval("MsgBox(""" & Prompt & _
         """, " & Buttons & ", """ & Title & """, """ & _
         HelpFile & """, " & Context & ")")
    End If
End Function
Ensuite il ne vous reste qu'à appeler cette fonction depuis votre code :

FormattedMsgBox "Wrong button!@This button doesn't work.@Try Another.", _ 
           vbOKOnly + vbExclamation, "My Application"
lien : fr Source de cette solution

Importer les barres d'outils ou de menus personnalisées
auteur : =JBO=
Procédure valable pour une version française d'Access 2000 :

  1. Ouvrir le fichier MDB dans lequel on souhaite importer les barres personnalisées.
  2. Dans le menu [Fichier], exécuter la commande [Données externes|Importer...].
  3. Une boîte de dialogue [Importer] s'affiche pour sélectionner le fichier MDB dans lequel se trouvent les barres d'outils à récupérer. Sélectionner ce fichier et cliquer sur le bouton [Importer].
  4. Une nouvelle boîte de dialogue [Importer des objets] s'affiche. Cliquer sur le bouton [Options >>] pour faire apparaître les contrôles permettant de gérer plus finement l'Import.
  5. Dans le cadre [Importer] cocher la case "Menus et barres d'outils".
  6. Cliquer sur le bouton [OK].
Remarque:
pour récupérer les paramètres d'import/export de données, ça se passe aussi dans les Options.


Comment déployer en vba les sous feuilles de données d'un formulaire en mode feuille de données ?
auteur : =JBO=
Vous avez créé un formulaire contenant dans sa zone "Détails" un sous-formulaire lié. Ces deux formulaires sont utilisés en affichage feuille de données, ce qui fait qu'Access les affiche sous forme d'une arborescence : on voit les lignes du formulaire principal et on peut cliquer sur la petite croix pour faire apparaître les sous-enregistrements du sous formulaire liés à cette ligne.

Ce que vous souhaitez faire : "déplier" chaque ligne au lancement du formulaire pour éviter que l'utilisateur n'ait à le faire à la main en cliquant sur chaque petite croix...

Voici une solution :

Private Sub Form_Load()
  Me.SubdatasheetExpanded = True
End Sub
Ce code fonctionne avec une arborescence à plusieurs niveau (plusieurs formulaires imbriqués).

Lien réciproque : Q/R d'Etienne sur la possibilité d'afficher plusieurs sous en continu.


Comment modifier l'apparence des boutons de commande ? (Faire passer de Windows 98 au style Windows XP Access 2003)
auteur : petitmic
Allez dans Outils > Options, onglet Formulaires/Etats, cochez Utiliser les contrôles Windows à thèmes sur les formulaires

Cette Fonction n'est applicable que sous Access 2003


Comment créer un effet de relief lorsque la souris survole un contrôle ?
auteurs : BrunoM45, Faw

Il y a deux événements dans lesquels nous devons placer du code.


Tout d'abord, occupons nous de la souris qui survole le contrôle.

Private Sub Étiquette_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.Étiquette.SpecialEffect = 0
End Sub

Étiquette est le nom d'un contrôle de type étiquette.


Maintenant, il faut qu'une fois fini de survoler le contrôle, celui-ci récupère son apparence normale.
En fait il faut que vous placiez le code suivant sur l'événement MouseMove() du contenant du contrôle étiquette.
Dans cet exemple, le contrôle se trouve dans la zone Détail du formulaire, nous avons donc :

Private Sub Détail_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.Étiquette.SpecialEffect = 0
End Sub

Comment faire pour que mes chiffres soient précédés d'un 0 ? (01, 02, ...)
auteur : Tofalu
Pour cela il faut modifier la propriété format de la zone de texte du formulaire qui affiche ces chiffres, en lui appliquant un format 00


Comment rendre un formulaire transparent ?
auteur : Arkham46
Vous pouvez utiliser cette méthode. Jouez sur le paramètre lAlpha pour augmenter ou diminuer la transparence.

Private Const WS_EX_LAYERED = &H80000
Private Const LWA_ALPHA = &H2
Private Const GWL_EXSTYLE = &HFFEC
Private Declare Function SetWindowLong Lib "USER32" Alias "SetWindowLongA" _
(ByVal hWnd As Long, _
ByVal lngWinIdx As Long, _
ByVal dwNewLong As Long) As Long
 
Private Declare Function GetWindowLong Lib "USER32" Alias "GetWindowLongA" _
(ByVal hWnd As Long, _
ByVal lngWinIdx As Long) As Long
 
Private Declare Function SetLayeredWindowAttributes Lib "USER32" _
(ByVal hWnd As Long, _
ByVal crKey As Integer, _
ByVal bAlpha As Integer, _
ByVal dwFlags As Long) As Long
 
Private Sub Form_Load()
Dim lAlpha As Long
lAlpha = 255 * (20 / 100)
    SetWindowLong Me.hWnd, GWL_EXSTYLE, GetWindowLong(Me.hWnd, GWL_EXSTYLE) Or WS_EX_LAYERED
    SetLayeredWindowAttributes Me.hWnd, 0, lAlpha, LWA_ALPHA
End Sub
Pour que cela fonctionne, le formulaire doit être indépendant.


Comment changer de page dans un onglet en VBA ?
auteur : Faw
Une des méthodes consiste à affecter le numéro de la page (cette numérotation commence à 0) à la valeur du contrôle onglet.

Exemple :

Private Sub Bascule4_Click()
Me.CtlTab0.Value = Index de page
End Sub
Autre possibilité : utiliser la méthode SetFocus de la page :

Me.NomContrôleOnglet.Pages("NomDeLaPage").SetFocus

precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2004  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com