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

A.G. Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -  
blux Messages postés 27147 Date d'inscription   Statut Modérateur Dernière intervention   -
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.


A voir également:

3 réponses

castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   217
 
bonjour
dans la table, par defaut tu marques 0
0
A.G. Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   217
 
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   Statut Membre Dernière intervention  
 
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 27147 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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 27147 Date d'inscription   Statut Modérateur Dernière intervention   3 362
 
Remplace Sum(dbo_Frais.fra_montant) par IIF...
0
A.G. Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
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