Vous pouvez utiliser des contrôles calculés sur des formulaires et des états dans les bases de données Access pour afficher les résultats d’un calcul. Par exemple, si vous avez un rapport qui affiche le nombre d’articles vendus et le prix de chaque unité, vous pouvez ajouter une zone de texte calculée qui multiplie ces deux champs pour afficher le prix total. La propriété Source de contrôle de la zone de texte calculée contient une expression qui multiplie deux champs (le nombre d’éléments par le prix unitaire) pour obtenir le résultat.
Que voulez-vous faire ?
Créer un contrôle calculé
Cette procédure vous permet de créer un contrôle calculé sans utiliser d’Assistant contrôle.
-
Cliquez avec le bouton droit sur le formulaire ou l’état dans le volet de navigation, puis cliquez sur Mode Création.
-
Sous l’onglet Création , dans le groupe Contrôles , cliquez sur l’outil correspondant au type de contrôle que vous souhaitez créer.
Pour obtenir la liste des types de contrôles qui peuvent être utilisés comme contrôles calculés, consultez la section Découvrir les types de contrôles pouvant être utilisés comme contrôles calculés.
-
Positionnez le pointeur à l’endroit où vous souhaitez placer le contrôle sur le formulaire ou l’état, puis cliquez sur le formulaire ou l’état pour insérer le contrôle.
-
Si un Assistant contrôle démarre, cliquez sur Annuler pour le fermer.
-
Sélectionnez le contrôle, appuyez sur F4 pour afficher la feuille de propriétés, puis tapez une expression dans la zone de propriété Source du contrôle . Pour utiliser la Générateur d’expression pour créer l’expression, cliquez sur en regard de la zone de propriété Source du contrôle .
-
Basculez en mode Formulaire ou État et vérifiez que le contrôle calculé fonctionne comme prévu.
Remarques :
-
Faire précéder chaque expression de l’opérateur = . Par exemple : =[UnitPrice]*.75.
-
Pour plus d’informations sur la création d’expressions, consultez l’article Créer une expression.
-
Si vous avez besoin de plus d’espace pour taper une expression dans la zone de propriété Source du contrôle , appuyez sur Maj+F2 pour ouvrir la zone Zoom .
-
Si votre formulaire ou état est basé sur une requête, vous préférerez peut-être placer l’expression dans la requête plutôt que dans un contrôle calculé. Cela peut améliorer les performances et, si vous envisagez de calculer des totaux pour les groupes d’enregistrements, il est plus facile d’utiliser le nom d’un champ calculé dans un fonction d’agrégation.
-
Lorsque vous effectuez un tri sur un contrôle calculé dans un formulaire ou un état, vérifiez que la propriété Format du contrôle est correctement définie. Sinon, les valeurs numériques ou de date calculées peuvent être triées par ordre alphabétique plutôt que numérique.
-
Remplacer un contrôle lié par un contrôle calculé
Un bon moyen de créer un contrôle calculé consiste d’abord à créer un contrôle lié (par exemple, en faisant glisser un champ du volet Liste de champs vers votre formulaire ou état), puis en modifiant la propriété Control Source du contrôle lié pour créer une expression. Cela fonctionne bien, tant que vous vous assurez que le nom du contrôle n’est pas en conflit avec les noms de champs contenus dans l’expression. Pour plus d’informations sur la création d’un contrôle lié en faisant glisser un champ à partir du volet Liste de champs, consultez l’article Ajouter un champ à un formulaire ou à un état.
En supposant que vous avez déjà créé votre contrôle lié, utilisez la procédure suivante pour le remplacer par un contrôle calculé et éviter tout conflit de noms.
-
Cliquez avec le bouton droit sur le formulaire ou l’état dans le volet de navigation, puis cliquez sur Mode Création.
-
Cliquez sur le champ que vous souhaitez modifier, puis appuyez sur F4 pour ouvrir la feuille de propriétés.
-
Sous l’onglet Tout de la feuille de propriétés, si la propriété Name correspond à la propriété Source du contrôle , modifiez la propriété Name afin que les deux propriétés ne correspondent pas. Vérifiez que le nom que vous entrez n’est pas un mot réservé ou le nom d’un autre champ dans votre base de données. Pour plus d’informations sur les mots réservés, consultez l’article En savoir plus sur les symboles et les mots réservés Access.
-
Modifiez la chaîne dans la zone de propriété Source du contrôle afin qu’elle contienne l’expression souhaitée.
-
Appuyez sur Ctrl+S pour enregistrer vos modifications.
-
Basculez en mode Page ou En mode Formulaire et vérifiez que le contrôle calculé fonctionne comme prévu.
Si le contrôle n’affiche pas les données souhaitées (par exemple, si Access affiche #Name ? dans le contrôle), case activée la source d’enregistrement du formulaire ou de l’état pour vous assurer que tous les champs que vous avez utilisés dans l’expression sont disponibles. Si la source d’enregistrement est une requête, vous devrez peut-être ajouter un ou plusieurs champs à la requête pour que l’expression fonctionne.
Remarques :
-
Faire précéder chaque expression de l’opérateur = . Par exemple : =[UnitPrice]*.75.
-
Si vous avez besoin de plus d’espace pour taper une expression dans la zone de propriété Source du contrôle , appuyez sur Maj+F2 pour ouvrir la zone Zoom .
-
Si votre formulaire ou état est basé sur une requête, vous préférerez peut-être placer l’expression dans la requête plutôt que dans un contrôle calculé. Cela peut améliorer les performances et, si vous envisagez de calculer des totaux pour les groupes d’enregistrements, il est plus facile d’utiliser le nom d’un champ calculé dans un fonction d’agrégation.
-
Lorsque vous effectuez un tri sur un contrôle calculé dans un formulaire ou un état, vérifiez que la propriété Format du contrôle est correctement définie. Sinon, les valeurs numériques ou de date calculées peuvent être triées par ordre alphabétique plutôt que numérique.
Découvrir quels types de contrôles peuvent être utilisés comme contrôles calculés
Les zones de texte sont le choix le plus populaire pour un contrôle calculé, car elles peuvent afficher de nombreux types de données différents. Toutefois, tout contrôle qui a une propriété Source de contrôle peut être utilisé comme contrôle calculé. Dans de nombreux cas, il n’est pas judicieux d’utiliser un certain type de contrôle comme contrôle calculé, car vous ne pouvez pas mettre à jour ce contrôle de la façon dont vous pouvez mettre à jour un contrôle lié ou indépendant. Par exemple, si vous placez un contrôle de zone de case activée sur un formulaire, puis que vous entrez une expression dans la propriété Source du contrôle de la zone case activée, vous ne pouvez plus sélectionner ou effacer la zone case activée en cliquant dessus. La zone case activée apparaît sélectionnée ou effacée, en fonction des résultats de l’expression. Si vous cliquez sur la zone case activée, Access affiche une alerte dans la barre d’status Access : Le contrôle ne peut pas être modifié ; il est lié à l’expression <votre expression>. Dans un rapport, toutefois, il peut être utile de baser un contrôle de zone de case activée sur les résultats d’un calcul, car les contrôles sur les rapports sont utilisés uniquement pour afficher des informations.