OVH Cloud OVH Cloud

[aide svp] fonction Iif (test si champ null)

6 réponses
Avatar
pierro
Bonjour

Je suis bloqué sur cette fonction Si:

Expr1: Iif(IsNull([04B]![Total]);[20B]![Total];[04B]![Total])


L'idée est que si les données contenues dans la première table sont vides,
alors Access m'affiche les données de la seconde table.

Merci d'avance
Pierro

6 réponses

Avatar
ze_titi
Bonjour,

il vient d'où ce code ? D'un bouton, d'un champ ?
le Expr1 correspond à quoi ?

--
Cordialement,

ze_titi

Mail perso: http://www.cerbermail.com/?sj4KuQC4GQ




Bonjour

Je suis bloqué sur cette fonction Si:

Expr1: Iif(IsNull([04B]![Total]);[20B]![Total];[04B]![Total])


L'idée est que si les données contenues dans la première table sont vides,
alors Access m'affiche les données de la seconde table.

Merci d'avance
Pierro




Avatar
pierro
Bonjour,


il vient d'où ce code ? D'un bouton, d'un champ ?
le Expr1 correspond à quoi ?


Pardon si je n'ai pas été assez clair. Voici plus de précisions:
Je cherche à rentrer cette fonction "si" dans une requête.
"Expr1" est juste le nom de la requête ainsi calculée.

Exemple de mes 2 tables:

1) Table: 04B
Nom / Total

Effa / 60
Alb / 50
...
Zelo / [vide]
Zeza / 30


2) Table : 20B
Nom / Total

Effa / 70
Alb / 90
...
Zelo / 150
Zeza / 80


Le résultat de ma Requête calculée devrait être (garder les totaux de la
première table mais si certains sont vides, alors les remplir par les totaux
de la deuxième table):
Nom / Total

Effa / 60
Alb / 50
...
Zelo / 150
Zeza / 30



Merci d'avance ;)
Pierro



"pierro" a écrit dans le message de news:
4534a055$0$2494$
Bonjour

Je suis bloqué sur cette fonction Si:

Expr1: Iif(IsNull([04B]![Total]);[20B]![Total];[04B]![Total])


L'idée est que si les données contenues dans la première table sont vides,
alors Access m'affiche les données de la seconde table.

Merci d'avance
Pierro



Avatar
ze_titi
C'est déjà plus clair comme ça...

En fait, ça dépend de l'organisation de tes données dans tes tables. Le
nombre de lignes est-il le même dans les 2 tables ? Quelle est la clé
primaire sur chacune des tables ? Y-a-t-il des relations entre ces tables ?

Dans l'éventualité où les tables sont parfaitement identiques et que ce sont
juste les valeurs qui diffèrent (les identifiants sont égaux), tu établis une
relation entre les identifiants dans ta requête et, dans ce cas uniquement,
ta formule fonctionne moyennant le remplacement des "!" par des "."

Iif(IsNull([04B].[Total]);[20B].[Total];[04B].[Total])


--
Cordialement,

ze_titi

Mail perso: http://www.cerbermail.com/?sj4KuQC4GQ





Bonjour,


il vient d'où ce code ? D'un bouton, d'un champ ?
le Expr1 correspond à quoi ?


Pardon si je n'ai pas été assez clair. Voici plus de précisions:
Je cherche à rentrer cette fonction "si" dans une requête.
"Expr1" est juste le nom de la requête ainsi calculée.

Exemple de mes 2 tables:

1) Table: 04B
Nom / Total

Effa / 60
Alb / 50
....
Zelo / [vide]
Zeza / 30


2) Table : 20B
Nom / Total

Effa / 70
Alb / 90
....
Zelo / 150
Zeza / 80


Le résultat de ma Requête calculée devrait être (garder les totaux de la
première table mais si certains sont vides, alors les remplir par les totaux
de la deuxième table):
Nom / Total

Effa / 60
Alb / 50
....
Zelo / 150
Zeza / 30



Merci d'avance ;)
Pierro



"pierro" a écrit dans le message de news:
4534a055$0$2494$
Bonjour

Je suis bloqué sur cette fonction Si:

Expr1: Iif(IsNull([04B]![Total]);[20B]![Total];[04B]![Total])


L'idée est que si les données contenues dans la première table sont vides,
alors Access m'affiche les données de la seconde table.

Merci d'avance
Pierro







Avatar
pierro
Re-bonjour,
Merci pour ces explications. ;)
Hélas le nombre de lignes n'est pas identique dans les deux tables.
En fait j'ai une relation entre mes deux tables et une autre table
(appellons-là la "table principale" car elle contient tous les noms
possibles).
Le Champ "Nom" est la clé primaire sur les 3 tables.

La table 1 est jointe à la table principale (affiche tous les élements
disponibles de la table principale et seulement les champs égaux de la table
1).
Idem pour la table2 ((La table 2 est jointe à la table principale (affiche
tous les élements disponibles de la table principale et seulement les champs
égaux de la table 2)).

Donc lorsque j'utilise la requête :
Iif(IsNull([04B].[Total]);[20B].[Total];[04B].[Total])
une boite de dialogue m'annonce "Entrez une valeur de paramètre".
Si je ne rentre rien, en appuyant sur OK le résultat est le suivant:

Nom / Total

Effa / 60
Alb / 50
....
Zelo /[vide]
Zeza / 30


nb: Je me demande si je ne suis pas proche de la solution car si dans ma
formule je mets des guillemets à "[20B].[Total]"
Iif(IsNull([04B].[Total]);"[20B].[Total]";[04B].[Total])
alors le texte "[20B].[Total]" (mais pas les chiffres correspondants)
apparait à la place des cases vides :

Nom / Total

Effa / 60
Alb / 50
....
Zelo / [20B].[Total]
Zeza / 30


Encore merci d'avance ;)
Avatar
ze_titi
Iif(IsNull([04B].[Total]);Dlookup("Total";"20B";"Nom='" & [Nom] &
"'");[04B].[Total])

--
Cordialement,

ze_titi

Mail perso: http://www.cerbermail.com/?sj4KuQC4GQ




Re-bonjour,
Merci pour ces explications. ;)
Hélas le nombre de lignes n'est pas identique dans les deux tables.
En fait j'ai une relation entre mes deux tables et une autre table
(appellons-là la "table principale" car elle contient tous les noms
possibles).
Le Champ "Nom" est la clé primaire sur les 3 tables.

La table 1 est jointe à la table principale (affiche tous les élements
disponibles de la table principale et seulement les champs égaux de la table
1).
Idem pour la table2 ((La table 2 est jointe à la table principale (affiche
tous les élements disponibles de la table principale et seulement les champs
égaux de la table 2)).

Donc lorsque j'utilise la requête :
Iif(IsNull([04B].[Total]);[20B].[Total];[04B].[Total])
une boite de dialogue m'annonce "Entrez une valeur de paramètre".
Si je ne rentre rien, en appuyant sur OK le résultat est le suivant:

Nom / Total

Effa / 60
Alb / 50
....
Zelo /[vide]
Zeza / 30


nb: Je me demande si je ne suis pas proche de la solution car si dans ma
formule je mets des guillemets à "[20B].[Total]"
Iif(IsNull([04B].[Total]);"[20B].[Total]";[04B].[Total])
alors le texte "[20B].[Total]" (mais pas les chiffres correspondants)
apparait à la place des cases vides :

Nom / Total

Effa / 60
Alb / 50
....
Zelo / [20B].[Total]
Zeza / 30


Encore merci d'avance ;)




Avatar
pierro
Iif(IsNull([04B].[Total]);Dlookup("Total";"20B";"Nom='" & [Nom] &
"'");[04B].[Total])


Super! Merci bien. ;-)