Developpez.com

Club des développeurs et IT pro
Plus de 4 millions de visiteurs uniques par mois

FAQ MS-AccessConsultez toutes les FAQ

Nombre d'auteurs : 140, nombre de questions : 926, dernière mise à jour : 30 mars 2017 

 
OuvrirSommaireFormulairesPrésentation

Dans les propriétés du formulaire, mettre à "non" la propriété "Afficher sélecteur".

Créé le 1er avril 2003  par Team Access

Dans les propriétés du formulaire, mettre à "non" la propriété "Boutons de déplacement".

Créé le 1er avril 2003  par Team Access

Lien : Comment enlever les boutons de navigation d'un formulaire en VBA ?

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.

Créé le 1er avril 2003  par Team Access

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.

Créé le 1er avril 2004  par Drosera

Lien : Comment masquer/rendre invisibles toutes les zones de texte vides ?


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.

Créé le 1er avril 2003  par Team Access
 
Sélectionnez
Me.Image1.Picture = "c:\temp\dessin.jpg"
Créé le 29 décembre 2003  par Team Access

Cela est possible, mais c'est assez complexe. Il faut faire appel à une API.

Créé le 1er avril 2004  par Arkham46

Dans la propriété du contrôle il faut appuyer sur Ctrl + Entrer à l'endroit où vous voulez retourner à la ligne.

Créé le 1er avril 2004  par ARO

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

Lorsque vous avez un formulaire ouvert en plein é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.

Créé le 12 mai 2004  par 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.

Créé le 3 septembre 2004  par Drosera

Formatez un formulaire comme bon vous semble : police de caractères, 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éé précédemment.

Créé le 3 septembre 2004  par Demco

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 : Ajouter un menu dans un formulaire.

Mis à jour le 29 août 2006  par Tofalu

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 :

 
Sélectionnez
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
Mis à jour le 30 octobre 2007  par Tofalu, cafeine

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 "Sur clic" :
  • 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].
Créé le 10 mai 2005  par Demco

La réponse se trouve ici.

Créé le 10 mai 2005  par Arkham46

Utiliser l'argument acHidden de la méthode OpenForm ou OpenReport.
Exemple pour un formulaire :

 
Sélectionnez
DoCmd.OpenForm "MonForm",,,,,acHidden
Créé le 25 octobre 2004  par Team Access

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 deux 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 :

 
Sélectionnez
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. Étendez-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 :

 
Sélectionnez
        CurrentDb.Execute "UPDATE TaTabl Set Active=False"
        CurrentDb.Execute "UPDATE TaTabl Set Active=True Where [TonIdentifiant]=" & Nz(Me.TonIdentifiant, 0)
Créé le 1er janvier 2005  par Maxence HUBICHE

Lien : Mise en surbrillance d'un enregistrement dans un formulaire

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.

Créé le 1er janvier 2005  par Team Access

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

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] cliquez sur [Contrôle ActiveX...].
Une boîte de dialogue permet de rechercher dans une liste le contrôle [Microsoft Forms x.y CommandButton].
Sélectionnez la ligne et cliquez 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 :

 
Sélectionnez

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 :

 
Sélectionnez

Private Sub NomDuBoutonActivX_Click()
MsgBox "Vous avez cliqué."
End Sub
Créé le 10 mai 2005  par =JBO=

Vous devez dans un premier temps écrire une nouvelle fonction d'affichage de boîte de message (MessageBox) :

 
Sélectionnez

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 :

 
Sélectionnez

FormattedMsgBox "Wrong button!@This button doesn't work.@Try Another.", _ 
           vbOKOnly + vbExclamation, "My Application"
Créé le 20 novembre 2005  par Frank

Lien : Source de cette solution

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.

Créé le 20 novembre 2005  par =JBO=

Vous avez créé un formulaire contenant dans sa section "Détail" 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 :

 
Sélectionnez

Private Sub Form_Load()
  Me.SubdatasheetExpanded = True
End Sub

Ce code fonctionne avec une arborescence à plusieurs niveaux (plusieurs formulaires imbriqués).

Créé le 20 novembre 2005  par =JBO=

Allez dans Outils > Options, onglet Formulaires/États, cochez Utiliser les contrôles Windows à thèmes sur les formulaires

Cette Fonction n'est applicable que sous Access 2003.

Créé le 20 novembre 2005  par petitmic


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.

 
Sélectionnez

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 section Détail du formulaire, nous avons donc :

 
Sélectionnez

Private Sub Détail_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.Étiquette.SpecialEffect = 0
End Sub
Créé le 20 novembre 2005  par BrunoM45, Faw

Pour cela il faut modifier la propriété format de la zone de texte du formulaire qui affiche ces nombres en lui appliquant un format00 (pour un nombre à deux chiffres).

Créé le 20 novembre 2005  par Tofalu

Vous pouvez utiliser cette méthode. Jouez sur le paramètre lAlpha pour augmenter ou diminuer la transparence.

 
Sélectionnez

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.

Créé le 29 novembre 2006  par Arkham46

Une des méthodes consiste à affecter le numéro de la page (cette numérotation commence à 0) à la valeur du contrôle onglet.

Exemple :

 
Sélectionnez

Private Sub Bascule4_Click()
Me.CtlTab0.Value = Index de page
End Sub

Autre possibilité : utiliser la méthode SetFocus de la page :

 
Sélectionnez

Me.NomContrôleOnglet.Pages("NomDeLaPage").SetFocus
Créé le 29 novembre 2006  par Faw
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2013 Developpez Developpez LLC. Tous 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'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.