Fonction NZ non définie [Résolu]

Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
- - Dernière réponse : cs_petchy
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
- 15 mars 2010 à 21:45
bonjour
dans ma base ACCESS j'ai une requète,dans un des champs j'ai mis une fonction NZ pour ne pas avoir de nulle dans une données.Car ses données je les récupère dans mon prog (vb6) pour un graph.
voila le code de mon champ
 Nz([graphique11]![Fille],0

Au début sans la fonction pas de probleme,mon graph s'afficher mais à la place de la valeur nulle,il me mettait une valeur mais jamais la meme.
Mainteneant avec la fonction NZ,je n'est plus de valeur nulle dans mon champ,mais quand je lance le prog ,j'ai un message Box:
Fonction NZ non définie dans l'expression Adodc1

et ensuite j'ai une erreur:
La méthode refresf de l'objet 'IAdodc' a échoué

voila le code
Private Sub Form_Load()

    Dim MaBD As String
    
    MaBD = App.Path & "\BD\centre_aéré.mdb"
    With Adodc1
        .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & MaBD & ";Persist Security Info=False"
        .RecordSource = "SELECT * FROM graph"
    End With
    Adodc1.Refresh
    Adodc1.Recordset.MoveFirst

End Sub

faut il déclaré la fonction NZ dans vb6,si oui,ou
merci
petchy
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
1403
Date d'inscription
mardi 1 mai 2007
Dernière intervention
7 octobre 2012
3
Merci
F: VraiFaux(EstNull([Fille]);0;[Fille])

Si tu regardes bieb la définition de la fonction,
il y' a une partie si l' expression est vraie et une autre si elle est fausse.
En d' autre terme, si Fille est nulle elle remplace par 0, sinon elle renvoie Fille.
Tout comme If..Else
[] Ce qui va sans dire. va mieux en le disant.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de LIBRE_MAX
Messages postés
1403
Date d'inscription
mardi 1 mai 2007
Dernière intervention
7 octobre 2012
0
Merci
Salut,
Je crois qu' il faudrait la définir dans un module Access.
Et lors de la génération de ton champ, tu la retrouvera dans l' onglet Foctions/NomDeTaBase (au dessous de Fonctions integrées).
Ceci dit, pour éviter les valeurs nulles,commences plutot par créer
un champ qui te retourne 0 si c' est null (fonction VraiFaux).
Ensuite tu fais tes calculs en se basant sur ce champ nouvellement crée.
[] Ce qui va sans dire. va mieux en le disant.
Commenter la réponse de LIBRE_MAX
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
0
Merci
re
Je crois qu' il faudrait la définir dans un module Access.
Et lors de la génération de ton champ, tu la retrouvera dans l' onglet Foctions/NomDeTaBase (au dessous de Fonctions integrées).

je ne sais pas comment créer la fonction dans un module,et ensuite l'initialiser,si tu as un exemple
Ceci dit, pour éviter les valeurs nulles,commences plutot par créer
un champ qui te retourne 0 si c' est null (fonction VraiFaux).

j'ai créer une requete analyse croisée et donc je ne peut mettre 0 par défaut.
merci
petchy
Commenter la réponse de cs_petchy
Messages postés
1403
Date d'inscription
mardi 1 mai 2007
Dernière intervention
7 octobre 2012
0
Merci
<<je ne sais pas comment créer la fonction
dans un module,et ensuite l'initialiser,
si tu as un exemple ...

Ouvres ta base dans Access.
Onglet Module puis Nouveu.
Ecris ta fonction.

Ensuite ouvre ta requete en mode création,
Clic droit sur une colonne, puis Générer (créer),
puis ouvre le noeud Fonctions tu auras:
-Fonctions intégrées
-NomDeTabase

clic sur ce dernier,et ta fonction apparaitera
dans la liste de droite.

<< j'ai créer une requete analyse croisée et donc
je ne peut mettre 0 par défaut.

Supposons que ta requete se nomme RQ et se
base sur une table TL.
Tu crées une requete R1 qui se base sur ta table TL
et dans laqyete tu crées une colonne CL dont la définition est:

VraiFaus(EstNull(champ),0,champ).
Ton champ CL retournera 0 si champ est null.

Tu crées ensuite ta table croisées RQ en se basant sur la requete R1





[] Ce qui va sans dire. va mieux en le disant.
Commenter la réponse de LIBRE_MAX
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
0
Merci
re
je dois etre vraiment nul ,je n'arrive pas à creer une requete pour mettre la formule
Supposons que ta requete se nomme RQ et se
base sur une table TL.
Tu crées une requete R1 qui se base sur ta table TL
et dans laqyete tu crées une colonne CL dont la définition est:

VraiFaus(EstNull(champ),0,champ).
Ton champ CL retournera 0 si champ est null.

petchy
Commenter la réponse de cs_petchy
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Dernière intervention
20 avril 2010
0
Merci
je dois etre vraiment nul

crée toi une fonction NZ

Quand on pose une question on est con 5 minutes,Quand on ne la pose pas on le reste toute sa vie (mon site)
Commenter la réponse de Claiyah
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
0
Merci
re

on peut dans vb6
Commenter la réponse de cs_petchy
Messages postés
1403
Date d'inscription
mardi 1 mai 2007
Dernière intervention
7 octobre 2012
0
Merci
Allons-y PAS A PAS..

-Ouvres ta base dans Acces
-Requetes/Nouveau
-Selectionne ta Table source.
-A partir de cette table,selectionnes les champs
que tu veux.
-Sur la dernière colonne vide,Clic drit, puis
sur le menu contextuel, choisis Créer(ou génèrer,
c' est selon )
-L' assistant t'ouvre une fenêtre dans laquelle tu va
donner la définition de ton nouveau champ.
-Pour cela, Ouvres le noeud Fonctions (liste en bas à gauche)
-Clic sur Fonctions intègrées.
-Apparaitera une liste qui répertorie toutes lrd fonctions disponibles.
-Vers le bas de cette liste tu trouveras la fonction VraiFaux.
-Double - Clic dessus et ta fonction s" écrira dans la zone de texte d' au dessus.

VraiFaux(<Expr>;SiVrai,SiFaux)
Rempmaces :
- <Expr> par EstNull(LeNomDeTonChamp)
- SiVrai par 0
- SiFaux par LeNomDeTonChamp

-Valides
-Ton nouveau est ainsi crée,se nommes Expr1 et fais partie deta requete.
-Il se présente sous la forme:
Expr1:VraiFaux(EstNull(LeNomDeTonChamp);0,LeNomDeTonChamp)

-Tu peux lui donner le nom que tu veux en remplaçant
Expr1 par le NouveauNom.

Pour ta tableau croisé tu te baseras sur le champ NouveauNom





[] Ce qui va sans dire. va mieux en le disant.
Commenter la réponse de LIBRE_MAX
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
0
Merci
bonjour
merci pour tes conseils,donc j'ai bien suivi
et j'ai cette formule dans mon nouveau champ
F: VraiFaux(EstNull([Fille]);0)

voila ,j'ai bien un 0 dans la case ou il y a rien dans le champ Fille,mais je n'est que le 0 et rien d'autre dans les lignes,j'ai 13 lignes.
pourquoi les autres données ne sont pas la
merci
@ plus
petchy
Commenter la réponse de cs_petchy
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Dernière intervention
19 mai 2015
0
Merci
bonsoir
autant pour moi,
c'est nickel,merci beaucoup pour ton aide
bonne fin de soirée
petchy
Commenter la réponse de cs_petchy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.