
Sommaire
>
Formulaires Comment faire une recherche multi-critères ? Comment ouvrir un formulaire au démarrage ? Comment savoir si un formulaire est ouvert ? Désactiver la molette de la souris dans un formulaire. Un formulaire basé sur une requête s'affiche à l'écran comme une page blanche. Comment ouvrir un formulaire en mode feuille de données ? Comment exécuter une procédure (sub) d'un sous formulaire ? Comment ouvrir un formulaire en fonction d'une valeur contenue dans un autre formulaire ? Comment fermer un formulaire en VBA ? Comment interdire le click droit dans un formulaire ? Comment utiliser une partie de code commune à plusieurs formulaires ? Est-il possible d'insérer un sous-formulaire en continuous form dans un sous-formulaire qui est déjà en continuous form ? Comment passer le focus d'un formulaire à un autre ? Empêcher la fermeture d'un formulaire Comment exécuter une procédure (sub) d'un autre formulaire ? Message d'erreur 'Mémoire libre insuffisante' lors de l'utilisation d'un formulaire Comment récuperer la valeur d'une cellule dans un formulaire tabulaire ? Comment afficher une page Web dans un formulaire ? Comment ouvrir un formulaire en mode ajout ? Comment faire pour réduire un formulaire ? (effet du bouton tiret en haut à droite des fenêtres Windows) Comment changer le titre d'un formulaire ? Comment imprimer un formulaire au format Paysage ? Comment obtenir la description d'un formulaire ? Comment obtenir la date de modification d'un formulaire ? Comment fermer tous les formulaires ouverts ? Comment trier un formulaire tabulaire en cliquant sur l'étiquette de la colonne ? Comment modifier la propriété d'un formulaire en VBA ? Comment effectuer une action lors d'un changement d'enregistrement d'un sous-Formulaire ? Comment définir l'inactivité d'un utilisateur dans un formulaire ? Comment conserver la modification d'une étiquette dans un formulaire en VBA ? Comment Ouvrir un Formulaire modal indépendant en mode Continu de façon à visualiser tous les enregistrements ? Comment ajuster la taille d'un sous-form en fonction du nombre d'enregistrements ? 7.1. Contrôles (88) Comment atteindre un contrôle d'un sous formulaire ? Comment atteindre un contrôle d'un autre formulaire ? '#Supprimé' apparaît dans les contrôles de mon formulaire après avoir supprimé un enregistrement ? Comment changer la valeur de plusieurs contrôles en même temps ? Est-il possible de créer dynamiquement des contrôles ? Comment savoir si un contrôle du formulaire est vide ? Quand je suis sur le formulaire B, comment savoir quel bouton a été cliqué pour l'ouvrir ? Comment rendre (inv)visible un groupe de contrôles ? Comment verrouiller le contrôle d'un formulaire ? Comment ajouter une nouvelle page sur le contrôle onglet ? Comment préremplir un champ d'un formulaire qu'on ouvre en fonction d'un autre formulaire Comment sélectionner une page d'un onglet en VBA Afficher une image dans une page d'onglet [VBA DAO] Définir la valeur par défaut d'un champ Peut-on sauter des champs dans un Formulaire? Comment détecter une modification dans n'importe quel champ (dépendant) d'un formulaire Existe-t-il un moyen de vérifier la saisie d'un utilisateur dans un champ via des expressions régulières. Comment limiter le nombre de caractères à la saisie dans un champ Comment désactiver le bouton 'précédent' lorsqu'on est sur le premier enregistrement ? Comment faire pour que la première lettre saisie dans un contrôle soit en majuscule, puis les autres en minuscules. Comment atteindre un contrôle dont le nom est dans une variable Comment énumérer les contrôles d'un formulaire dans une boucle ? Comment contrôler la saisie, empêcher la saisie de certains caractères ? Je n'arrive pas à définir en vba la valeur par défaut d'un contrôle affichant une date dans un formulaire. Comment éviter qu'Access ne corrige automatiquement les mots saisis dans un contrôle ? Comment empêcher l'utilisateur de saisir du texte dans un contrôle Comment déterminer sur quel contrôle se trouve le focus ? Comment forcer l'utilisateur à utiliser la virgule et non le point lors de la saisie de nombres ? Pourquoi mon code affiche un nombre décimal dans une étiquette, alors que le champ durée de la requête est en heure abrégé du type hh:mm ? Comment créer dynamiquement un contrôle dans un formulaire et lui associer du code vba sur un événement ? Comment interdire l'utilisation du clic droit de la souris sur un contrôle ? Comment créer dynamiquement un contrôle dans un formulaire et lui associer du code vba sur un événement ? Comment récupérer la position du curseur dans un contrôle ? Comment déterminer la position d'un contrôle par le code ? Comment déplacer le pointeur de la souris vers un contrôle ? Comment donner le focus à un controle d'un sous formulaire ? Comment afficher une info bulle pendant le survol d'un controle ? 7.1.1. Zones de liste et zones de liste modifiable (31) Y a-t-il moyen d'éliminer la barre de défilement horizontale lors de l'utilisation d'une zone de liste sur plusieurs colonnes? Comment dans une zone de liste modifiable, supprimer le message d'erreur 'le texte entre n'appartient pas a la liste' ? Comment désélectionner les valeurs d'une liste à choix multiples? Absence dans liste déroulante - Proposer d'ajouter la valeur manquante dans la table source Comment remettre l'affichage d'une zone de liste modifiable à blanc ? Comment connaître le nombre de ligne d'une zone de liste ? Comment sélectionner une ligne d'une zone de liste modifiable en VBA ? Comment sélectionner une ligne d'une zone de liste en VBA ? Impossible de changer la valeur d'une liste ou boîte de texte ? Comment Rafraîchir les données de ma zone de liste ? Comment modifier la requête source d'une zone de liste modifiable ? Comment savoir quelle ligne d'une zone de liste modifiable est sélectionnée ? Comment ajouter un ou des éléments à une zone de liste ? Comment récupérer la valeur d'une colonne de la ligne sélectionnée dans une zone de liste ? Comment autoriser plusieurs sélections dans une zone de liste ? Selectionner tous les éléments zone de liste en VBA ? Empêcher la mise à jour (modification) d'une zone de liste modifiable tout en permettant la sélection de ligne dans la liste Comment selectionner une ligne dans une zone de liste en fonction du texte d'une de ses colonnes ? Comment empêcher la saisie au clavier dans une zone de liste ? Comment vérifier qu'une valeur existe dans une zone de liste ? Comment faire correspondre deux zones de listes Comment faire en sorte que le contenu d'une zone de liste déroulante dépende de la valeur d'une autre liste ? Commer vider le contenu une zone de liste modifiable ? Comment récupérer la valeur d'une colonne dans une zone de liste pour une ligne quelconque ? Comment archiver les dernières valeurs saisies dans une liste ? (pratique pour les champs de recherche) Comment conserver la sélection lors d'un affichage de requetes dans zones de listes Comment dérouler une liste modifiable lors de sa réception du Focus ? Comment dérouler une liste déroulante sur le survol de la souris ? 7.1.1.1. Trucs et Astuces (3) Comment limiter le nombre de selections d'une ListeBox ? Ajouter Tous en haut d'une liste déroulante Comment remplir dynamiquement une liste déroulante avec les années ? 7.1.2. Zones de texte (12) Comment changer la couleur du texte d'une zone de texte ? Comment changer la couleur de fond d'une zone de texte ? Comment masquer/rendre invisible toutes les zones de texte vides ? Comment masquer ce qui est tapé dans une zone de texte (pour un mot de passe) ? Comment avoir un TextBox (zone de texte) multiligne ? Comment utiliser une zone de texte comme un champ de calcul (comme dans Excel) Comment s'assurer qu'un utilisateur n'a saisi que des chiffres et aucune lettre dans une zone de texte Comment limiter le nombre de caractères saisis dans une zone de texte indépendante ? Comment remplacer la virgule par un point dans une zone de texte ? Comment mettre un champ de type texte clignotant ? 7.1.2.1. Trucs et Astuces (2) Comment créer une zone de texte de type ovale ? Renvoyer dans une zone de texte la valeur d'un champ en fonction du contenu d'une zone de liste 7.1.3. TreeView (5) Dans un TreeView, comment remettre en surbrillance le noeud sur lequel on vient d'ajouté un fils ? Comment récupérer les lignes cochées d'un Treeview ? Connaitre la génération d'un noeud dans un treeview Comment imprimer un control de type Treeview ? Comment piloter le clic droit dans un contrôle TreeView ? 7.1.4. Onglet (3) Quel est l'évènement qui permet de savoir quand on entre dans une page d'un contrôle onglet. Comment avoir le nom de l'onglet ou autre auquel appartient un contrôle ? Comment mettre des couleurs sur un contrôle onglet ? 7.2. Données (26) Comment fermer un formulaire sans sauvegarder l'enregistrement en cours ? Comment afficher le nombre d'enregistrements du sous formulaire dans le formulaire principal ? Erreur 3021 - Aucun enregistrement en cours 7.2.1. Position dans le formulaire (10) Dans un formulaire en fin d'enregistrement un appui sur la touche Tab provoque le passage à l'enregistrement suivant. Comment revenir plutôt au début de la fiche ? Comment savoir si la ligne courante est celle d'un nouvel enregistrement Comment se positionner sur le premier/dernier/précédent/suivant/nouvel enregistrement d'un formulaire dépendant ? Comment se positionner sur le premier/dernier/précédent/suivant/nouvel enregistrement d'un sous-formulaire ? Comment obtenir le numéro de l'enregistrement actuel du formulaire ? Comment ouvrir un formulaire en se positionnant sur un enregistrement spécifique ? Comment se positionner sur un nouvel enregistrement de mon sous formulaire ? Comment, à partir d'une valeur de mon formulaire, se positionner sur les enregistrement correspondant du sous formulaire ? Comment obtenir la position en pourcentage de l'enregistrement actuel du formulaire ? Comment se déplacer de X enregistrements dans un formulaire ? 7.2.2. Modification et ajout de données (8) Comment interdire la manipulation d'enregistrements dans un formulaire dépendant ? Comment interdir les modifications des données d'un sous-formulaire ? Comment empêcher Access d'enregistrer de lui-même les modifications/ajouts d'enregistrements du formulaire ? Comment empêcher la mise à jour/l'ajout des données d'un formulaire dépendant ? Comment fait-on pour un avoir un message de confirmation avant sauvegarder un enregistrement modifié ? Comment supprimer l'enregistrement en cours dans un formulaire dépendant ? Sauvegarde de l'enregistrement en cours par le code, après modification/ajout d'un enregistrement. Comment mettre à jour des données calculée d'une table depuis un formulaire ? 7.2.3. Source de données (5) Comment trier un formulaire sur un champ spécifié en VBA Comment changer la source d'un sous-formulaire ? Comment changer la source d'un formulaire ? Comment filtrer un formulaire à partir d'une valeur contenue dans une variable ? Comment mettre à jour un formulaire? 7.3. Présentation (28) 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 ? 7.4. Trucs et Astuces (30) Comment afficher une table ou une requête dans un contrôle Sous Formulaire sans créer de nouveau formulaire ? Comment ne pas enregistrer les données des contrôles d'un formulaire avant validation par l'utilisateur J'ai le bouton1 qui avec l'événement On_Move fait apparaître le bouton2, et quand je repasse sur le bouton1 le bouton2 doit disparaître et ainsi de suite... Centrer un formulaire Comment savoir si un contrôle existe dans un formulaire ? Comment faire défiler un texte dans un formulaire Empêcher la navigation entre formulaire via barre des tâches Comment faire passer un formulaire ouvert en mode acDialog en arrière plan ? Créer dynamiquement un formulaire Insérer une ligne blanche (enregistrement vide) dans un SF affiché en mode Feuille de données Passer en mode Edit dans un champ dont le format est différent du masque de saisie Nouvel enregistrement ou enregistrement modifié ? Positionner le curseur à gauche du champ ou sélectionner le contenu du champ Position d'un formulaire Comment vérifier à la sortie d'une input box que le type de donnée rentrée est bien du numérique ? Comment masquer un sous formulaire vide ? Comment empêcher l'utilisateur de cliquer à l'extérieur du formulaire (comme pour une MsgBox) Comment enlever les boutons de navigation d'un formulaire en VBA Comment utiliser la saisie semi-automatique dans les contrôles de mes formulaires ? Dans un formulaire en mode continu, comment rendre invisible un bouton pour certaines lignes ? Comment 'zoomer' sur le contenu d'un contrôle de type texte Le temps d'ouverture de mes formulaires à onglets est trop important ! Transmettre le nom du formulaire appelant à l'ouverture d'un formulaire. Complément au tutoriel de recherche multicritère de cafeine : Enregistrer dans une requête le résultat de la recherche multicritères Comment créer dynamiquement des contrôles de type rectangle sur le formulaire en cours ? Comment faire repartir un gif qui a cessé de s'animer ? Comment ne pas ouvrir un formulaire si celui est vide ? Paramètre non reconnu pour un graphique basé sur une requête paramétrée Commment compter le nombre d'enregistrement d'un sous formulaire ? Comment savoir si les contrôles ont été remplis dans un Formulaire ?
| auteur : Etienne Bar | A partir d'Access 2000 vous pouvez faire : currentproject. AllForms (" NomDuForm " ). IsLoaded
|
Sinon :
Il suffit de mettre ce code dans un module :
Function IsLoaded (ByVal strFormName As String ) As Integer
Const conObjStateClosed = 0
Const conDesignView = 0
If SysCmd (acSysCmdGetObjectState, acForm, strFormName) < > conObjStateClosed Then
If Forms (strFormName). CurrentView < > conDesignView Then
IsLoaded = True
End If
End If
End Function
|
Autre solution : Public Function is_form_opened (fname As String ) As Boolean
On Error GoTo not_opened
Dim LeFichier As String
LeFichier = Forms (fname). Name
is_form_opened = True
Exit Function
not_opened : If (Err . Number = 2450 ) Then
is_form_opened = False
err . clear
End If
End Function
|
|
| auteur : Frank | Un formulaire peut devenir pénible à utiliser car la molette de la souris fait défiler les enregistrements.
Cette solution fonctionne pour MS Access 2000 et 2003. (si vous avez testé pour d'autres versions n'hésitez pas à nous le faire savoir)
Il arrive cependant que l'erreur "nom ambigu détecté" se manifeste pour les version 2002 et ultérieures. Référez-vous dans ce cas au tutoriel dont le lien est en bas de cet article.
1ere étape:
Ouvrir un module VBA, aller dans Outils/Références, cliquer sur Parcourir et localiser la dll MouseWheel.dll puis cliquer sur Ouvrir.
Cela permet d'enregistrer la dll dans les Références Access.
2eme étape :
Mettre le code suivant dans chaque formulaire qui requiert un contrôle de la roulette de la souris.
Private WithEvents clsMouseWheel As MouseWheel. CMouseWheel
Private Sub clsMouseWheel_MouseWheel (Cancel As Integer)
Cancel = True
End Sub
Private Sub Form_Load ()
Set clsMouseWheel = New MouseWheel. CMouseWheel
Set clsMouseWheel. Form = Me
clsMouseWheel. SubClassHookForm
End Sub
Private Sub Form_Close ()
If Not (clsMouseWheel Is Nothing ) Then
clsMouseWheel. SubClassUnHookForm
Set clsMouseWheel. Form = Nothing
Set clsMouseWheel = Nothing
End If
End Sub
|
|
lien : Gestion de la roulette de la souris dans les formulaires
|
| auteur : MashiMaro | Cela signifie que la requête source du formulaire ne retourne aucun résultat et que l'ajout est interdit.
Il suffit donc de modifier les propriétés ou de prévoir ce cas.
|
| auteur : Demco | Vous pouvez écrire du code dans un module et l'appeler depuis vos formulaires.
Exemple :
Dans un module écrivez le code suivant.
Sub MonMessage (txt As String )
MsgBox txt
End Sub
|
Puis dans votre formulaire, écrivez simplement :
Fonctionne pareillement avec les fonctions.
|
| auteur : Tofalu | Pour exécuter ce code il faut activer la référence : Microsoft DAO 3.x Object Library
Tout d'abord, il faut que les colonnes soient ordonnées dans le même ordre que la présentation des champs dans la requête.
Si on a : Select Nom, Prenom From Table
|
Il faut que la première colonne soit nom, la seconde prenom.
Ensuite dans le code du formulaire, coller la fonction suivante : Private function Cells (Ligne as integer,Colonne as integer) as string
On error goto err
Dim R as dao. recordset
set r= me. recordsetclone
r. movefirst
While Ligne> 0
r. movenext
ligne= ligne- 1
Wend
Cells= R. fields (Colonne). value
err :
End Function
|
On accède à une cellule avec :
Nb les indices commencent à 0. (La première colonne a pour numéro 0 et idem pour la première ligne)
Si toutefois, vous ne voulez pas ordonner les colonnes comme les champs, cela donnera. Private function Cells (Ligne as integer,Colonne as string ) as string
On error goto err
Dim R as dao. recordset
set r= me. recordsetclone
r. movefirst
While Ligne> 0
r. movenext
ligne= ligne- 1
Wend
Cells= R. fields (Colonne). value
err :
End Function
|
Et au lieu du numero de la colonne, on passera son nom. |
lien : Définition et manipulation de données avec DAO par Tofalu
lien : Comment déclarer une référence dans MS-Access ?
|
| auteur : Cafeine |
DoCmd. GoToRecord acDataForm, Me. name , acNewRec
|
|
| auteur : Faw | Il suffit de mettre votre code dans l'événement Sur Activation de votre sous formulaire
|
| auteur : DMboup | Ce code permet de tester toutes les secondes si le focus ne se déplace dans le formulaire
ou si une touche n'est pas appuyée pendant un temps paramétré, un message de non activité s'affiche.
Ce code permet de fermer un Formulaire ou la base en cours au bout d'un temps prédéfini.
Voici le code du Module du Formulaire testé : Option Compare Database
Public ExpiredTime
Sub Form_Timer ()
Const IDLEMINUTES = 0 . 05
Static PrevControlName As String
Static PrevFormName As String
Dim ActiveFormName As String
Dim ActiveControlName As String
Dim ExpiredMinutes
On Error Resume Next
ActiveFormName = Screen. ActiveForm . Name
If Err Then
ActiveFormName = " No Active Form "
Err = 0
End If
ActiveControlName = Screen. ActiveControl . Name
If Err Then
ActiveControlName = " No Active Control "
Err = 0
End If
If (PrevControlName = " " ) Or (PrevFormName = " " ) _
Or (ActiveFormName < > PrevFormName) _
Or (ActiveControlName < > PrevControlName) Then
PrevControlName = ActiveControlName
PrevFormName = ActiveFormName
ExpiredTime = 0
Else
ExpiredTime = ExpiredTime + Me. TimerInterval
End If
ExpiredMinutes = (ExpiredTime / 1000 ) / 60
If ExpiredMinutes >= IDLEMINUTES Then
ExpiredTime = 0
IdleTimeDetected ExpiredMinutes
End If
End Sub
Sub IdleTimeDetected (ExpiredMinutes)
Dim Msg As String
Msg = " Aucune activite "
Msg = Msg & ExpiredMinutes & " minute(s)! "
MsgBox Msg, 48
End Sub
Private Sub Form_KeyDown (KeyCode As Integer, Shift As Integer)
If Not IsNull (KeyCode) Then
ExpiredTime = 0
End If
End Sub
|
Const IDLEMINUTES = 0.05 correspond à 5 secondes
Modifiez les propriétés du Formulaire comme suit :
Aperçu des touches sur OUI
Intervalle minuterie = 1000
|
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.
|