Rechercher : dans
Par :

Gerer champ vide dans etat access

Dernière réponse le 1 avr 2009 à 16:07:12 shaka17, le 31 mar 2009 à 08:46:45 
 Signaler ce message aux modérateurs

Bonjour,

j'ai un etat puisant ces informations dans une requete analyse croisée qui me renvoi une synthèse de ma table.

en fonction des enregistrements de la table je peux avoir des champs vide qui me fausse les calculs dans mon etat (les sommes ne se font pas quand un des champ est vide) il faudrait, sur mes champs de issue de la requête mettre la valeur 0 lorsqu'ils sont vide ou null

j'ai vu sur un post du fofo une requête conditionnel pour afficher 0 si le resultat été vide qui utilise la fonction "iif" mais je n'arrive pas a la mettre en application. voici ce que j'ai ecrit dans "Source de contrôle" du champ

SELECT iif(isnull(En cours)),0,Somme(En cours))

PS : "En cours" est le champ qui peut être vide et dont je voudrais mettre la valeur 0 dans ce cas

je précise que je connais trés peu le sql sortie des assistants ...

pouvez vous m'aider a completer ma ligne de code pour que cela fonctionne ou bien me donner une autre solution en vba?

Merci d'avance

Configuration: Windows XP
Internet Explorer 6.0

1

Jean_Jacques, le 31 mar 2009 à 09:45:15

Bonjour Shaka17,

Je n'ai pas essayé, mais en saisissant le format suivant dans propriété/onglet format du contrôle... il se pourrait bien que ça passe ..

# ##0,00" €"

A vérifier donc

Cordialement
La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.

Répondre à Jean_Jacques

2

shaka17, le 31 mar 2009 à 15:39:26

Merci pour votre suggestion, mais malheureusement cela ne marche pas. Je crois que pour que cela marche il faut au moins une valeur hors moi je n'en ai pas.



Je pense qu'il faut faire une requête SQL ou un code VBA pour conditionner la source de contrôle.



Si vous avez une idée dans se sens …



Merci quand même.

Répondre à shaka17

3

Jean_Jacques, le 31 mar 2009 à 15:48:14

Shaka 17,

Pour faire avancer le Schmilblick, et avant d'aller plus loin, est-ce que le champ
de la table contient zéro par défaut ?
C'est bien un champ numérique ?

A+
La science ne fait que trouver ce qui existe depuis toujours­.
REEVES Hubert.

Répondre à Jean_Jacques

4

shaka17, le 31 mar 2009 à 15:57:53

Il s'agit d'une requete analyse croisée et lorsque le champ ne contient pas d'information il est vide donc pas de 0 par défaut.

C'est justement ce que j'essai de faire de mettre 0 par defaut mais apparement ce n'est pas possible de déterminer une valeur par defaut dans une requete d'analyse croisée

oui il s'agit d'un champ numérique

merci

Répondre à shaka17

5

Jean_Jacques, le 31 mar 2009 à 16:40:43

Shaka17,

Dans l'état, dans la zone de texte qui doit afficher un "Zéro"

saisir dans source contrôle : =vraifaux([<Nom_champ>]="";0)

NB : remplacer la chaîne de caractères : <Nom_champ>
par le vrai nom du champ

A+ La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.

Répondre à Jean_Jacques

6

shaka17, le 1 avr 2009 à 15:51:30

Merci du tuyau. aprés plusieurs tentatives j'ai réussi a adapter mon code et ca donne ca:

=VraiFaux("[Texte85]"<>"";[Texte85]) & VraiFaux(EstNull([Texte85]);0)

j'ai tapé ca dans la propriété source de controle du champ "Attente" (champ indépendant) quand au champ "Texte85" recoit le champ de la requête ce dernier est caché et me sert de tampon pour mon code sinon j'avais une erreur de redondance.

et ca marche trés bien!! merci encore pour l'idée de la fonction.

par contre je ne comprend pas pourquoi j'ai été obligé de gérer les 2 cas champ vide et champ avec une valeur?
sinon si la condition n'était pas rempli cela ne m'affichait rien! se n'est pas comme dans excel
"si(condition,Vrai,Faux)"?

de plus sur votre ligne vous utilisez des , moi access me demande des ; est ce normal ou c'est une histoire de version?

Merci pour vos précisions!

Cordialement

PS: c'est compliqué la synthaxe en sql !!!

Répondre à shaka17

7

 Jean_Jacques, le 1 avr 2009 à 16:07:12

Shaka17,

Merci pour ce retour d'information.

Ollé ! Belle figure de tauromachie pour éviter le Taureau ! Je plaisante bien sûr.

Je crois qu'il y a une syntaxe qui stipule : si la valeur n'est pas numérique, alors ....
mais je ne la retrouve pas. Mais si ça fonctionne ... pour le moment ça le fait !

Le problème des , et ; est "Normal". C'est une histoire de normes qui se contredisent.. Je n'en sais pas plus.


Bienvenue dans le monde des astuces et autes combines

Cordialement La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.

Répondre à Jean_Jacques