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

Access Discussion :

Contrôle source entre dates [AC-2007]


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 88
    Points : 36
    Points
    36
    Par défaut Contrôle source entre dates
    Bonjour

    je ne vois pas mon appel à l'aide, aussi je le réitère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Nz(SomDom("[Montant retrait]";"[Sorties achats espèces]";"[Date sortie] Est Pas Null Et Entre [Forms]![Dialogue des dates]![Date début] Et [Forms]![Dialogue des dates]![Date fin]");0)
    je cherche à additionner les valeurs Montant retrait et Sorties achats espèces d'une table entre 2 dates

    merci de votre aide car ce contrôle source me renvoie #erreur

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 053
    Points : 24 646
    Points
    24 646
    Par défaut
    Bonjour,

    C'est normal, ton expression conditionnelle est incorrecte.

    Pour qu'elle soit valide il faut que chaque condition qui la compose puisse fonctionner seule.

    Voici ce que tu as écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [Date sortie] Est Pas Null Et Entre [Forms]![Dialogue des dates]![Date début] Et [Forms]![Dialogue des dates]![Date fin]
    Si on la décompose en 2 conditions :
    1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Date sortie] Est Pas Null
    2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Entre [Forms]![Dialogue des dates]![Date début] Et [Forms]![Dialogue des dates]![Date fin]
    Autant la première fonctionne seule, autant la deuxième ne le peut pas.

    Si tu as du mal, utilises des parenthèses pour les séparer, ainsi tu y verras plus clair.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ([Date sortie] Est Pas Null) Et (Entre [Forms]![Dialogue des dates]![Date début] Et [Forms]![Dialogue des dates]![Date fin])
    Tu remarques immédiatement le problème.

    A noter, pour la vulgarisation, que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ([Date sortie] Est Pas Null)
    peut aussi s'écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (not isnull([Date sortie]))
    Cordialement,

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 88
    Points : 36
    Points
    36
    Par défaut Contrôle source entre date
    Merci pour ta réponse qui me semble claire...j'ai appliqué, ce qui donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Nz(SomDom("[Montant retrait]";"[Sorties achats espèces]";"([Date sortie] Est Pas Null) Et (Entre [Forms]![Dialogue des dates]![Date début] Et [Forms]![Dialogue des dates]![Date fin])");0)
    mais hélas toujours erreur

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 817
    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 817
    Points : 14 911
    Points
    14 911
    Par défaut
    Bonsoir,
    merci de votre aide car ce contrôle source me renvoie #erreur
    A priori, le code a une syntaxe correcte, mais montrer le code ne suffit pas sans un minimum d'informations qui peuvent avoir leur importance : où se trouve le source contrôle : dans état, un sous-état, un formulaire ou un sous-formulaire ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 88
    Points : 36
    Points
    36
    Par défaut Contrôle source entre date
    Ce code provient d'une source contrôle d'un sous-état dont les dates proviennent d'un formulaire. j'ai un autre sous-état qui prend bien les dates..mystère

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 053
    Points : 24 646
    Points
    24 646
    Par défaut
    Le code est toujours incorrect.
    Utiliser les parenthèses permet de mettre en lumière l'erreur mais pas qu'elle se corrige seule.

    Petit exercice :
    Si tu utilises cette condition seule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ([Date sortie] Est Pas Null)
    ça fonctionne.


    Par contre celle-ci non car elle n'est pas complète.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (Entre [Forms]![Dialogue des dates]![Date début] Et [Forms]![Dialogue des dates]![Date fin])
    Sit tu regardes le contrat d'utilisation de Entre (between en anglais) tu verras qu'il est de ce type.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [Expression] Entre [Expression] Et [Expression]
    Dans ton cas il n'y a que la fin. La valeur à comparer est absente.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Entre [Expression] Et [Expression]
    Vois-tu mieux la correction à apporter ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 88
    Points : 36
    Points
    36
    Par défaut Contrôle source entre date
    désolé....je patine et je vois bien que tu veux être pédagogue!

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 053
    Points : 24 646
    Points
    24 646
    Par défaut
    Je dois mal m'y prendre.

    Donc si le contrat d'utilisation de ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ([Date sortie] Est Pas Null)
    est cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ([Expression] Est Pas Null)
    Alors pour ce contrat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Expression] Entre [Expression] Et [Expression]
    on devra écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (????? Entre [Forms]![Dialogue des dates]![Date début] Et [Forms]![Dialogue des dates]![Date fin])
    Je te laisse compléter les points d'interrogations.
    un indice : c'est la même chose que pour la première condition.

    Lorsque j'ai débuté, j'avais également du mal, (sans doc sans net sans développez) j'ai utilisé une astuce.
    Je construisais une requête qui fonctionne avec le QBE (le générateur graphique de requête) puis en passant en mode SQL je retrouvais mes conditions. (en anglais mais ça me donnais la structure).

    Bon si ça marche vraiment pas mon explication, je te donne la soluce (en tout petit pour que ça te saute pas aux yeux) :


  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 88
    Points : 36
    Points
    36
    Par défaut Contrôle source entre date
    Encore moi....désolé d'insister..mais j'aimerais en venir à bout et que cela n'hante pas ma nuit.
    Ta dernière explication me conforte dans la compréhension de ce que tu veux m'expliquer...donc le code devrait être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     =Nz(SomDom("[Montant retrait]";"[Sorties achats espèces]";"([Date sortie] Est Pas Null) Et ([Date sortie]Entre [Forms]![Dialogue des dates]![Date début] Et [Forms]![Dialogue des dates]![Date fin])");0)
    mais cela ne fonctionne toujours pas

  10. #10
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 817
    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 817
    Points : 14 911
    Points
    14 911
    Par défaut
    j'ai un autre sous-état qui prend bien les dates..mystère
    Est-ce le même contexte ? Dans l'affirmative, ce serait bien de montrer le code du sous-état qui fonctionne ...

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 88
    Points : 36
    Points
    36
    Par défaut Contrôle source entre date
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Nz(SomDom("[Montant retrait]";"[Sorties achats espèces]";"[Date sortie]=Date()");0)
    cela fonctionne, mais l'entre date non!

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 88
    Points : 36
    Points
    36
    Par défaut Contrôle source entre date
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Nz(SomDom("[Montant]";"[Recettes espèces]";"[Date vente]<[Forms]![Dialogue des dates]![Date début]");0)-Nz(SomDom("[Montant retrait]";"[Détails sorties complets]";"[Date sortie]<[Forms]![Dialogue des dates]![Date début]");0)
    Cette ligne, dans le même sous formulaire faisant appel au même dialogue de date fonctionne aussi....j'en perds..mon latin...qui me sert pas à grand chose ce soir!

  13. #13
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 817
    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 817
    Points : 14 911
    Points
    14 911
    Par défaut
    Ce n'est pas le même code, donc pas le même contexte car ici, tu utilises une fonction intégrée (dans le post n°11).
    Mais peut-être ici est l'explication :
    sans pour autant ne pas l'utiliser, car c'est un outil indispensable (surtout pour ceux qui débutent) il faut quelquefois se méfier de QBE car il n'est pas le reflet exact du code SQL. Pour preuve voici ce que donne le critère de ton code depuis QBE :

    Pièce jointe 241266
    et le code généré par SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [Sorties Achats Espèces].[Montant retrait], [Sorties Achats Espèces].[Date sortie]
    FROM [Sorties Achats Espèces]
    WHERE ((([Sorties Achats Espèces].[Date sortie]) Is Not Null And ([Sorties Achats Espèces].[Date sortie]) Between [Formulaires]![Dialogue des dates]![Date début] And [Formulaires]![Dialogue des dates]![Date fin]));
    Ceci est peut-être l'explication du pourquoi tu as du mal à comprendre la syntaxe que t'a montré loufab et que moi aussi je n'ai rien trouvé d'anormal en lisant ton code.
    Conclusion : pour les fonctions de domaine, il faut privilégier le copier/coller du code depuis SQL plutôt que depuis QBE.
    De plus, dans QBE il est traduit dans la langue locale contrairement à SQL.

  14. #14
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 053
    Points : 24 646
    Points
    24 646
    Par défaut
    Bonsoir,

    Oui en mode SQL (c'est bien indiqué dans mon post)

    Il y a une chose qui me saute au yeux dans ce que tu as posté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     =Nz(SomDom("[Montant retrait]";"[Sorties achats espèces]";"([Date sortie] Est Pas Null) Et ([Date sortie]Entre [Forms]![Dialogue des dates]![Date début] Et [Forms]![Dialogue des dates]![Date fin])");0)
    Les espaces sont très importants et là tu en as oublié un.

  15. #15
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 817
    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 817
    Points : 14 911
    Points
    14 911
    Par défaut
    Citation Envoyé par loufab Voir le message
    Bonsoir,

    Oui en mode SQL (c'est bien indiqué dans mon post)

    Il y a une chose qui me saute au yeux dans ce que tu as posté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     =Nz(SomDom("[Montant retrait]";"[Sorties achats espèces]";"([Date sortie] Est Pas Null) Et ([Date sortie]Entre [Forms]![Dialogue des dates]![Date début] Et [Forms]![Dialogue des dates]![Date fin])");0)
    Les espaces sont très importants et là tu en as oublié un.
    Bonjour loufab et bernar26
    et en plus, le code devrait être en anglais.

    J'ai testé cette syntaxe qui fonctionne (j'avais un doute avec Forms ou Formulaires, mais les 2 fonctionnent) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Nz(SomDom("[Montant retrait]";"[Sorties achats espèces]";"([Date sortie] is not Null) And ([Date sortie] Between [Formulaires]![Dialogue des dates]![Date début] And [Formulaires]![Dialogue des dates]![Date fin])");0)

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 88
    Points : 36
    Points
    36
    Par défaut Contrôle source entre date
    Super..enfin cela fonctionne enfin.
    Merci à vous deux. je passerais maintenant en anglais

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. obtenir toutes les dates valides comprises entre dates
    Par captainamerica75 dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/06/2006, 13h25
  2. [Dates] probleme avec mktime et interval entre dates
    Par steinfield dans le forum Langage
    Réponses: 7
    Dernier message: 18/05/2006, 12h47
  3. différence durée entre date jour/date champ
    Par debdev dans le forum Access
    Réponses: 9
    Dernier message: 30/11/2005, 16h55
  4. Réponses: 2
    Dernier message: 15/11/2005, 10h09
  5. Contrôle des entrées -> on doit coder?
    Par thibouille dans le forum C++
    Réponses: 2
    Dernier message: 23/10/2005, 20h59

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