Remplacer un champ par un autre à l’affichage
Dans une table Personnes, j’ai 2 champs :
Téléphone fixe
etTéléphone mobile
. Dans un état imprimé par exemple, je voudrais que le téléphone fixe soit affiché systématiquement, sauf s’il n’est pas renseigné. Dans ce cas, il doit être remplacé par le téléphone mobile. Comment faire ?
La table de départ
Votre table pourrait avoir la forme suivante.
Pour la 3ème personne, il faudrait que le téléphone mobile s’affiche, en remplacement du téléphone fixe.
La requête
Vous pourriez intervenir à différents endroits d’Access (dont l’état qui est l’objectif). Mais il est plus efficace de travailler au niveau de la requête : de cette manière, plusieurs états pourront réutiliser la formule que vous allez mettre en place.
- Créez une requête en mode Création, basée sur votre table des personnes.
- Placez les champs qui vous intéressent sur la grille de requête.
- Ajoutez le champ calculé suivant :
1 |
Téléphone: Nz([Téléphone fixe]; [Téléphone mobile]) |
La fonction Nz()
convertit une valeur vide (Null
) en une seconde valeur. En d’autres termes, si [Téléphone fixe]
est vide, on le remplace par [Téléphone mobile]
.
On aurait également pu faire appel à une condition Si, mais c’est juste un peu plus lourd :
1 |
Téléphone:Iif(IsNull([Téléphone fixe]); [Téléphone mobile]; [Téléphone fixe]) |
Et voici la requête finale (il ne reste plus qu’à construire un état à partir d’elle, en utilisant le champ calculé Téléphone
plutôt que les autres champs) :
Noël > Il faut écrire
Nz([le champ], 0)
plutôt queNz([le champ], "0")
. Dans le 2ème cas, le champ est converti en chaîne de caractères, ce qui explique pourquoi « 1 » + « 0 » donne « 10 ». En numérique, 1 + 0 donne bien 1 (si les calculs ne sont pas faits en VBA, remplacer aussi mes virgules par des points-virgules).Bonjour,
J’utilise la fonction Nz pour remplacer un champ vide par 0.
Le problème est lorsque je veux additionner le tout, cela ne fait pas 1+0=1 mais 10. C’est à dire que 0 n’est pas considéré comme un chiffre mais comme un caractère que l’on vient coller à coller de l’autre.
Comment faire pour considérer 0 comme un chiffre ?
Merci pour votre aide.
Noël