[Access] Valeur d'un champ

Résolu
nathh76 Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   -  
blux Messages postés 27121 Date d'inscription   Statut Modérateur Dernière intervention   -
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

blux Messages postés 27121 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
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"
0
nathh76 Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   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.
0
blux Messages postés 27121 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Toutes les fonctions de vba sont utilisables dans SQL : fonctions mathématiques (sin, cos...), fonctions de chaines de caractères (left, right...).
0
mitsu
 
moi sa marche ni avec NZ ni avec IIF
0
blux Messages postés 27121 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Quoi qui ne marche pas ?
Donne ton exemple...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mitsu
 
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
0
blux Messages postés 27121 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Lesquelles ?
0
mitsu
 
celle avec des nz, qui sont a la base calculé et qui me servent pour des calculs aprés
0
blux Messages postés 27121 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
As-tu essayé : nz([utilisation machine/étape].[utilisation_machine],"0") ?
0
mitsu
 
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
0
mitsu
 
problème résolu.

merci quand meme
0