[Access] Valeur d'un champ [Résolu/Fermé]

Signaler
Messages postés
40
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
26 mai 2008
-
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
-
Bonjour à tous,

J'ai un probleme dans access et je seche completement.

J'ai un champ qui recupere le resultat d'une requete. Parfois ce champs "semble" vide car la requete ne renvoie pas de resultat (ce qui est normal). Le soucis, c'est que j'utilise ce champ dans un autre calucl qui est [champ C]=[champ A]+[champ B] (rien de compliqué).Mais vu que le Champ A "semble" vide, il ne sais pas faire le calcul.

Je dis "semble" vide, car dans ma table j'ai rien du tout (meme pas un espace). Mais lorsque je fais des test de type If IsNull, ou if IsEmpty ou [champ A] ="" ou =0 cela ne marche pas.

Quelqu'un a une idée pour moi.

Cela serait sympa, car moi je vois plus.

5 réponses

Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
2 932
Salut,

tu peux utiliser la fonction IIF qui renvoie une valeur ou une autre en fonction d'un test.

Pour le test il faut utiliser les fonctions comme des fonctions et non pas comme des constantes :
If IsNull(champA)...

Sinon, ça pourrait faire un truc comme ça :
SELECT IIf(IsNull(ChampA),"0",ChampA)
--
A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
Messages postés
40
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
26 mai 2008
1
Salut,

Merci pour ta reponse, cela ma bien aidé. Je connaissais pas ce genre de fonctions.

j'ai fini par utiliser la fonction Nz, mais c'est grace a ton aide car cela m'a aiguiller dans la bonne direction.

Merci beaucoup.
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
2 932
Toutes les fonctions de vba sont utilisables dans SQL : fonctions mathématiques (sin, cos...), fonctions de chaines de caractères (left, right...).
moi sa marche ni avec NZ ni avec IIF
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
2 932
Quoi qui ne marche pas ?
Donne ton exemple...
SELECT [coût MP].N°essai, [coût salarié/étape].N°étape, nz([utilisation machine/étape].[utilisation_machine],0) AS Expr1, nz([coût salarié/étape].[coût_sal_total],0) AS Expr2, nz([coût MP].[coût_MP],0) AS Expr3

FROM ([utilisation machine/étape] INNER JOIN [coût salarié/étape] ON ([utilisation machine/étape].N°Essai = [coût salarié/étape].N°Essai) AND ([utilisation machine/étape].N°étape = [coût salarié/étape].N°étape)) INNER JOIN [coût MP] ON ([coût salarié/étape].N°Essai = [coût MP].N°essai) AND ([coût salarié/étape].N°étape = [coût MP].N°étape) AND ([utilisation machine/étape].N°Essai = [coût MP].N°essai) AND ([utilisation machine/étape].N°étape = [coût MP].N°étape);


voila mon sql et sa marche pas, j'ai toujour des cases vides si un des champ est vide
celle avec des nz, qui sont a la base calculé et qui me servent pour des calculs aprés
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
2 932
As-tu essayé : nz([utilisation machine/étape].[utilisation_machine],"0") ?
oui mais je pense que mon probleme ressemble plus a sa:

https://forums.commentcamarche.net/forum/affich-4991051-access-sql-0-dans-une-requete

mais j'arrive pas a l'appliqué, je comprend pas le truc des 2 requêtes
problème résolu.

merci quand meme
Messages postés
23763
Date d'inscription
dimanche 26 août 2001
Statut
Modérateur
Dernière intervention
13 janvier 2020
2 932
Donc, c'était un problème de jointure (il ne fallait pas mettre une équijointure, mais une droite ou gauche), pas un problème de nz...