IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Utilisation incorrecte de null. [AC-2016]


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut Utilisation incorrecte de null.
    Bonjour,

    J'ai ce message en executant ma requete:

    "Utilisation incorrecte de null"

    La cause serait cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Total_reglement: CDbl(RechDom("Montant_reg";"tbl_reglements";"[ID_contrat]=" & [ID_reglement]))
    Auriez vous s'il vout plait une idée ?

    Merci.

    Cordialement.

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,

    Si la partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RechDom("Montant_reg";"tbl_reglements";"[ID_contrat]=" & [ID_reglement])
    ne trouve rien, cela donne comme résultat Null, ce que la fonction CDbl() ne sait pas traiter.

    Pour remédier à cela, insérer la fonction nz() qui peut convertir les Null en 0 (ou toute autre valeur).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Total_reglement: CDbl(nz(RechDom("Montant_reg";"tbl_reglements";"[ID_contrat]=" & [ID_reglement]);0)
    Cordialement.

  3. #3
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonjour,

    Je m'excuse pour le retard dans ma réponse, c'est juste qu'en cette période ca reste très chargé, par contre je rebondis sur le précèdent message, effectivement le message a disparu en utilisant le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Montant contrat: CDbl(Nz(RechDom("[Contre valeurs]";"tbl_contrat";"[ID_contrat]=" & [ID_reglement]);0))
    Néanmoins une incohérence subsiste le champ [Contre valeur] est censé faire ressortir le montant du contrat, or actuellement ce n'est pas le cas, le capture d'écran le montre, le montant est faux, le vrai montant est de [4 643 298 480,18], je n'arrive toujours pas a comprendre l'origine de l'incohérence.

    Doc2.docx

    Cordialement.

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    DLookup n'est pas la bonne méthode puisqu'elle fait une recherche et renvoie la première occurrence trouvée, la bonne méthode est DSum:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Montant contrat: DSum("Nz([Contre valeurs],0)";"tbl_contrat";"[ID_contrat]=" & [ID_reglement])
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonsoir tee_grandbois,

    Merci pour votre réponse, j'essayerais cette méthode et je vous donnerais des nouvelles des que possible.

    Encore merci.

    Cordialement.

  6. #6
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonjour,

    j'ai remplacé le code comme vous me l'avez demandé, mais des explications s'imposent, a vrai dire j'ai 3 codes le premier est censé faire ressortir le montant du contrat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Montant contrat: SomDom("Nz([Contre valeurs],0)";"tbl_contrat";"[ID_contrat]=" & [ID_reglement])
    Le second fait ressort le cumul des règlements opéré sur le contrat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cumul_rglt: CDbl(Nz(SomDom("Montant_reg";"tbl_reglements";"[ID_reglement]<= " & [ID_reglement] & " AND ID_contrat = " & [ID_contrat] & "")))
    le dernier code fait ressort le reste, c'est a dire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Reste: [Montant contrat]-[Cumul_rglt]
    or actuellement avec le 1er code, il me fait ressortir un montant qui ne ressemble pas du tout a celui que j'ai sur le contrat.

    merci.

    cordialement.

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    or actuellement avec le 1er code, il me fait ressortir un montant qui ne ressemble pas du tout a celui que j'ai sur le contrat.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Montant contrat: SomDom("Nz([Contre valeurs],0)";"tbl_contrat";"[ID_contrat]=" & [ID_reglement])
    Est-ce bien correct d'aller chercher le n° de contrat avec ID_contrat = ID_reglement ?

    Le second fait ressort le cumul des règlements opéré sur le contrat
    est-ce que ce montant est correct ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  8. #8
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonjour,

    Oui le résultat du champ [Cumul_rglt] est juste.

    par contre il serait possible de faire ressortir uniquement le montant du contrat [Contre valeurs], puisque le calcul du champ [Cumul_rglt] est juste.

    Merci.

    Cordialement.

  9. #9
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    Citation Envoyé par adelion7015 Voir le message
    Bonjour,

    Oui le résultat du champ [Cumul_rglt] est juste.

    par contre il serait possible de faire ressortir uniquement le montant du contrat [Contre valeurs], puisque le calcul du champ [Cumul_rglt] est juste.

    Merci.

    Cordialement.
    OK, mais pourquoi n'avoir pas répondu à la première question ?
    Citation Envoyé par tee_grandbois
    Est-ce bien correct d'aller chercher le n° de contrat avec ID_contrat = ID_reglement ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  10. #10
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    bonjour,

    a vrai dire, je n'avais pas de réponse, c'est une proposition qui m'avait été faite et que j'ai bricolé un peu, le problème viendrait de ca ?

    cordialement

  11. #11
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Une autre précision, les champs [Contre valeur] et [ID_contrat] sont issus du formulaire principale, alors que le champ [ID_reglement] est issu du sous formulaire.

    Cordialement.

  12. #12
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    a vrai dire, je n'avais pas de réponse, c'est une proposition qui m'avait été faite et que j'ai bricolé un peu, le problème viendrait de ca ?
    on peut effectivement retrouver un identifiant en y mettant n'importe quoi comme valeur ... la probabilité est cependant assez faible de tomber pile dessus.

    Sérieusement, est-ce que ID_reglement de la table tbl_reglement correspond à l'identifiant ID_contrat de la table tbl_contrat dans tbl_reglement (appelée aussi clé étrangère) ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  13. #13
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonsoir tee_grandbois,

    Je rependrais a cette question dimanche, je suis desolé, je pensais avoir ramené la base.

    Encore merci.

    Cordialement.

  14. #14
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonjour,

    Voila pour répondre a votre question, je confirme, le champ [ID_reglement] de la table tbl_reglement, existe dans la table tbl_contrat et le champ [ID_contrat], de la table tbl_contrat existe sur la table tbl_reglement.

    J'espère avoir répondu a votre question.

    Cordialement.

  15. #15
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonsoir,
    J'espère avoir répondu a votre question.
    non, car je n'ai pas demandé si les tables existaient mais si ID_reglement de la table tbl_reglement correspond à l'identifiant ID_contrat de la table tbl_contrat dans tbl_reglement puisque dans le code ci-dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Montant contrat: SomDom("Nz([Contre valeurs],0)";"tbl_contrat";"[ID_contrat]=" & [ID_reglement])
    on regarde si ils sont égaux: cela veut dire que le champ ID_reglement est l'identifant du contrat dans la table tbl_reglement (on appelle cela une clé étrangère puisqu'il identifie, dans une première table (tbl_reglement) la clé primaire d'une autre table (tbl_contrat): est-ce bien le cas ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  16. #16
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonjour,

    Désolé, je viens de comprendre votre question, je vous le confirme, ils ne sont pas égaux, du fait que l'un représente l'identifiant du contrat et l'autre l'identifiant du règlement qui s'opère sur le contrat.


    Merci.

    cordialement.

  17. #17
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bojour,
    je vous le confirme, ils ne sont pas égaux, du fait que l'un représente l'identifiant du contrat et l'autre l'identifiant du règlement qui s'opère sur le contrat.
    je m'en doutait un peu ... il faudrait donc utiliser le bon identifiant pour relier les 2 tables.
    Cet identifiant existe t-il ? Si oui, il faudrait l'utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Montant contrat: SomDom("Nz([Contre valeurs],0)";"tbl_contrat";"[ID_contrat]=" & [le_bon_identifiant_du_contrat_dans_tbl_reglement])
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  18. #18
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    bonjour,

    je vais essayé en utilisant le champ [n°contrat], c'est le seul champ qui est sur tbl_contrat et tbl_reglement.

    merci.

    cordialement.

  19. #19
    Membre régulier
    Homme Profil pro
    financier
    Inscrit en
    Juillet 2012
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : financier
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 381
    Points : 118
    Points
    118
    Par défaut
    Bonjour,

    J'ai essayé ce code, le problème est que je n'arrive pas a faire le lien entre le numéro de contrat pour tbl_reglement, donc avec le code ci-dessous, le champ reste vide



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Montant contrat: SomDom("Nz([Contre valeurs],0)";"tbl_contrat";"[Numero de contrat]=" & [Numero de contrat])
    Merci.

    cordialement.

  20. #20
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    je vais essayé en utilisant le champ [n°contrat], c'est le seul champ qui est sur tbl_contrat et tbl_reglement.
    cela semble logique, pourquoi ne pas l'avoir utilisé dès le début ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. erreur 94 utilisation incorrecte de null
    Par caossak dans le forum Général VBA
    Réponses: 2
    Dernier message: 24/06/2007, 11h00
  2. Réponses: 3
    Dernier message: 30/03/2007, 14h48
  3. Réponses: 6
    Dernier message: 03/07/2006, 08h26
  4. Utilisation incorrecte de Null ?
    Par pafi76 dans le forum Access
    Réponses: 6
    Dernier message: 28/06/2006, 09h40
  5. Utilisation incorrecte de Null ?
    Par illight dans le forum Access
    Réponses: 2
    Dernier message: 23/11/2005, 10h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo