Fonction NZ non définie [Résolu]

Signaler
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
19 mai 2015
-
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
19 mai 2015
-
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

10 réponses

Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
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.
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
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.
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
19 mai 2015
3
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
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
<<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.
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
19 mai 2015
3
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
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010
3
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)
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
19 mai 2015
3
re

on peut dans vb6
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
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.
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
19 mai 2015
3
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
Messages postés
710
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
19 mai 2015
3
bonsoir
autant pour moi,
c'est nickel,merci beaucoup pour ton aide
bonne fin de soirée
petchy