Un 0 automatiquement dans l'état lorsqu'aucun frais n'est encodé

Fermé
A.G. Messages postés 22 Date d'inscription mardi 23 juillet 2013 Statut Membre Dernière intervention 26 septembre 2013 - 24 sept. 2013 à 13:25
blux Messages postés 26533 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 décembre 2024 - 26 sept. 2013 à 11:04
Bonjour,

J'ai une table (ACCESS 2007) "frais" ou j'encode différents frais (boissons, syllabus, repas,...)
Ces champs ne sont pas toujours complété parce que pas de frais.
Je voudrais faire un état "Bilan" qui reprenne tous les frais et lorsqu'il n'y a aucun montant encodé un zéro automatiquement.
Merci pour votre aide.


3 réponses

castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
24 sept. 2013 à 14:23
bonjour
dans la table, par defaut tu marques 0
0
A.G. Messages postés 22 Date d'inscription mardi 23 juillet 2013 Statut Membre Dernière intervention 26 septembre 2013
24 sept. 2013 à 14:38
Bonjour,
Malheureusement, je ne sais rien modifier dans la table.
J'ai créé une requête pour chacun des différents frais pour pouvoir en faire une somme totale. Parce qu'il peut y avoir plusieurs repas etc...
Peut-être là puis-je mettre dans les critères si frais montant est null mettre zéro ?
Encore un grand merci
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
24 sept. 2013 à 22:31
Bonjour
Si ton champ est declaré en numerique, tu as le zero par defaut automatiquement.
Seulement ce champ doit servir pour des calculs.
0
A.G. Messages postés 22 Date d'inscription mardi 23 juillet 2013 Statut Membre Dernière intervention 26 septembre 2013
25 sept. 2013 à 14:29
Le champ dans la table est bien en numérique mais dans la propriété du champ le null est interdit. Je dois donc travailler obligatoirement dans une requête ou un état les tables me sont interdites.
0
blux Messages postés 26533 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 décembre 2024 3 317
25 sept. 2013 à 13:41
Salut,

dans une requête, tu peux utiliser la fonction IIF qui renvoie une valeur en fonction d'un test...

SELECT IIF(ISNULL(SUM(FRAIS);"0";SUM(FRAIS)... 
0
A.G. Messages postés 22 Date d'inscription mardi 23 juillet 2013 Statut Membre Dernière intervention 26 septembre 2013
25 sept. 2013 à 14:52
Salut,
Voilà ce que j'ai noté
Select IIF(isnull(sum(fra_montant));"0";sum(fra_montant)
Cette expression comporte une sous-requête erronnée
Placé la sous requête entre parenthèse
Un grand merci
0
A.G. Messages postés 22 Date d'inscription mardi 23 juillet 2013 Statut Membre Dernière intervention 26 septembre 2013
25 sept. 2013 à 14:59
Voilà le SQL du champ
SELECT dbo_Seminaire.sem_code, dbo_Frais.fra_montant, dbo_Type_Frais.typfra_code, dbo_Type_Frais.typfra_libelle, Sum(dbo_Frais.fra_montant) AS SommeDefra_montant, dbo_Seminaire.sem_ref
FROM dbo_Seminaire LEFT JOIN (dbo_Frais LEFT JOIN dbo_Type_Frais ON dbo_Frais.typfra_code = dbo_Type_Frais.typfra_code) ON dbo_Seminaire.sem_code = dbo_Frais.sem_code
GROUP BY dbo_Seminaire.sem_code, dbo_Frais.fra_montant, dbo_Type_Frais.typfra_code, dbo_Type_Frais.typfra_libelle, dbo_Seminaire.sem_ref
HAVING (((dbo_Type_Frais.typfra_code)=12));
0
A.G. Messages postés 22 Date d'inscription mardi 23 juillet 2013 Statut Membre Dernière intervention 26 septembre 2013
25 sept. 2013 à 15:53
Si je mets
=VraiFaux(EstNull([fra_montant]);"0";[fra_montant])
Il ne prends que les séminaires qui ont un frais indiqué dans le champ mais pas ceux pour qui on n'a rien encodé.
Merci
0
blux Messages postés 26533 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 18 décembre 2024 3 317
25 sept. 2013 à 15:53
Remplace Sum(dbo_Frais.fra_montant) par IIF...
0
A.G. Messages postés 22 Date d'inscription mardi 23 juillet 2013 Statut Membre Dernière intervention 26 septembre 2013
25 sept. 2013 à 16:26
SELECT dbo_Seminaire.sem_code, dbo_Frais.fra_montant, dbo_Type_Frais.typfra_code, dbo_Type_Frais.typfra_libelle, IIF AS SommeDefra_montant, dbo_Seminaire.sem_ref
FROM dbo_Seminaire LEFT JOIN (dbo_Frais LEFT JOIN dbo_Type_Frais ON dbo_Frais.typfra_code = dbo_Type_Frais.typfra_code) ON dbo_Seminaire.sem_code = dbo_Frais.sem_code
GROUP BY dbo_Seminaire.sem_code, dbo_Frais.fra_montant, dbo_Type_Frais.typfra_code, dbo_Type_Frais.typfra_libelle, dbo_Seminaire.sem_ref
HAVING (((dbo_Type_Frais.typfra_code)=12));

Erreur de syntaxe opérateur absent dans l'expression IIF
0