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

IHM Discussion :

Probléme avec une requête et l'intégration de celle-ci dans un état [AC-2007]


Sujet :

IHM

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Points : 74
    Points
    74
    Par défaut Probléme avec une requête et l'intégration de celle-ci dans un état
    Bonjour,

    j'ai créer une base de données sous Access pour suivre mes comptes bancaires, et j'ai aussi mes livrets à l’intérieure de cette base de données.
    Donc, j'ai exécuté une requête qui s'appelle "Montant restant à placer" pour obtenir le montant total qui me reste à placer, pour ensuite l'intégrée à l’intérieure de mon état " Opérations des livrets" que j'ai créée.

    Mais quand je veux ouvrir ma requête "Montant restant à placer", j'ai ceci qui s'ouvre :



    Comment faire pour éviter ce problème si vous plaît ?

    Mon SQL est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [Operations des livrets].NomSsJrnl, SousJournal.SommeMaxi, Sum([Operations des livrets].MontantMvt) AS TotalLivret, [SommeMaxi]-[TotalLivret] AS RestantAPlacer
    FROM [Operations des livrets] INNER JOIN SousJournal ON [Operations des livrets].CodeSsJrnl=SousJournal.CodeSsJrnl
    GROUP BY [Operations des livrets].NomSsJrnl, SousJournal.SommeMaxi, [SommeMaxi]-[TotalLivret];
    Je vous montre mon modèle relationnel :





    Ensuite, la somme du montant restant à placer, je souhaiterai la faire parvenir dans mon état ici :



    Mais pour le faire parvenir il faudrait trouver une solution pour intégrer le résultat obtenue dans la requête "Opérations des livrets" car on ne peut prendre qu'une table ou qu'une requête pour faire un état.
    Voici le SQL de ma requête "Opérations des livrets" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Mouvements.NumMvt, Mouvements.DateMvt, Mouvements.LibelleMvt, Mouvements.MontantMvt, Mouvements.CodePmt, Mouvements.NumChq, Mouvements.CodeJrnl, Mouvements.CodeSsJrnl, Mouvements.Commentaire, SousJournal.NomSsJrnl, SousJournal.Tauxlivret
    FROM SousJournal INNER JOIN Mouvements ON SousJournal.CodeSsJrnl=Mouvements.CodeSsJrnl
    WHERE (((Mouvements.CodeJrnl)="LIV"));

    Je sais j'en demande beaucoup mais sa fait plus de deux semaines que je cherche à faire ce-là mais je n'ai pas réussi à le faire malheureusement :s

    Donc, si des personnes pourraient m'aider pour résoudre mes problèmes, l'on peut le faire pas à pas

    Je vous remercie d'avance cher communauté,
    bonne fin de journée à vous tous.
    Cordialement Jiben59.

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    J'ai pas tout compris, mais la première requête est plutôt comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [Operations des livrets].NomSsJrnl, SousJournal.SommeMaxi, Sum([Operations des livrets].MontantMvt) AS TotalLivret, [SommeMaxi]-[TotalLivret] AS RestantAPlacer
    FROM [Operations des livrets] INNER JOIN SousJournal ON [Operations des livrets].CodeSsJrnl=SousJournal.CodeSsJrnl
    GROUP BY [Operations des livrets].NomSsJrnl, SousJournal.SommeMaxi, SousJournal.SommeMaxi - Sum([Operations des livrets].MontantMvt);
    @+.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Points : 74
    Points
    74
    Par défaut
    Bonsoir,

    il y a un problème avec ton SQL avec le group By :


  4. #4
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Effectivement avec Access :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [Operations des livrets].NomSsJrnl, SousJournal.SommeMaxi, Sum([Operations des livrets].MontantMvt) AS TotalLivret, [SommeMaxi]-[TotalLivret] AS RestantAPlacer
    FROM [Operations des livrets] INNER JOIN SousJournal ON [Operations des livrets].CodeSsJrnl=SousJournal.CodeSsJrnl
    GROUP BY [Operations des livrets].NomSsJrnl, SousJournal.SommeMaxi
    Ensuite c'est peut-être un filtre que tu veux...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY [Operations des livrets].NomSsJrnl, SousJournal.SommeMaxi, SousJournal.SommeMaxi - Sum([Operations des livrets].MontantMvt)
    @+.

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Points : 74
    Points
    74
    Par défaut
    Ensuite c'est peut-être un filtre que tu veux...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY [Operations des livrets].NomSsJrnl, SousJournal.SommeMaxi, SousJournal.SommeMaxi - Sum([Operations des livrets].MontantMvt)
    Elle sert à quoi cette ligne, car sa veux dire ranger ?

    Quand j'ouvre la requête je n'ai pu ce message qui s'affiche Je vous remercie.
    J'ai pas tout compris, mais la première requête est plutôt comme cela :
    Qu'es ce que vous n'avez pas compris ?

    Merci.

  6. #6
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Citation Envoyé par Jiben59 Voir le message
    Elle sert à quoi cette ligne, car sa veux dire ranger ?
    Oui.

    Citation Envoyé par Jiben59 Voir le message
    Qu'es ce que vous n'avez pas compris ?
    Tu cherches à faire apparaître la même valeur partout ?

    @+.

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Points : 74
    Points
    74
    Par défaut
    L'état "Mouvements des livrets" est fait grâce à la requête "Operations des livrets", et l'état affiche les différents livret dans l'ordre croissant : en premier le livret LIV01, suivit du second livret LIV02..

    Grâce au SQL, on a pu calculer le montant qui reste à placer sur le Livret LIV01, sur le livret LIV02.. Et maintenant je veux que je message apparait en dessous de la barre bleu de l'état comme ceci :

    LIV01 xxxxx
    Montant restant à placer : xx€ ( ici le montant restant à placer du livret LIV01 )


    LIV02 xxxx
    Montant restant à placer : xx€ ( ici le montant restant à placer du livret LIV02 )

    Suis je plus clair maintenant ?
    Car pour faire intervenir les montants trouver avec la requête résolu ensemble, il faut replacer la colonne "RestantAPlacer" dans la requête "Operations des livrets"

  8. #8
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Il faut que tu crées un état avec ta requête, que tu insères dans ton premier état en faisant le lien avec le numéro de livret (Père-Fils).

    @+.

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Points : 74
    Points
    74
    Par défaut
    Je n'ai rien compris là par contre :o

    Je n'ai jamais entendu parler de ceci :s

    Pourriez vous m'expliquer comment faire ceci si vous plaît ?

  10. #10
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Regarde ce tuto, il explique le principe d'un sous-état.

    @+.

  11. #11
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Points : 74
    Points
    74
    Par défaut
    Merci, mais c'est bête de crée un sous état pour si peu :s



    Moi, pour avoir la somme de mon compte bancaire dans mon état j'avais intégrée le champs "SommeDuCompteCourant"dans le group by de la requête qui a permis de créer mon état :

    Le SQL de ma requête de mon état:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Mouvements.CodeJrnl, Sum(Mouvements.MontantMvt) AS MontantSsJrnl, SousJournal.NomSsJrnl, Mouvements.CodeSsJrnl, [Somme du Compte Courant].SommeDuCompteCourant
    FROM SousJournal, Mouvements, [Somme du Compte Courant]
    WHERE (((SousJournal.CodeSsJrnl)=[Mouvements].[CodeSsJrnl]))
    GROUP BY Mouvements.CodeJrnl, SousJournal.NomSsJrnl, Mouvements.CodeSsJrnl, [Somme du Compte Courant].SommeDuCompteCourant;

    Ma requête Somme du compte courant :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Sum(Mouvements.MontantMvt) AS SommeDuCompteCourant
    FROM Journal, Mouvements
    WHERE Journal.CodeJrnl=Mouvements.CodeJrnl And Journal.[Etat]=No;

    Et au final j'avais pu l'introduire pour le mettre dans mon état :


  12. #12
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    L'avantage des sous-états s'est pour la maintenance derrière, une requête ne fait qu'une chose !

    A toi de voir c'est ton application.

    @+.

  13. #13
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par zoom61 Voir le message
    L'avantage des sous-états s'est pour la maintenance derrière, une requête ne fait qu'une chose !

    A toi de voir c'est ton application.

    @+.
    J'ai tenté de l'intégrer mais il y a un problème.

    j’exécute mon Code SQL, et là j'obtiens ce que je souhaite mais je vérifie toujours ce que je fais.
    Donc je ferme ma base de données, je la ré ouvre.
    Je veux ouvrir la requête "operation des livrets" mais la j'ai ce message qui s'affiche :



    Pourquoi sa fonctionne avant et après avoir ré ouvrir la base de données, je rencontre un problème ?

    Code SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Mouvements.NumMvt, Mouvements.DateMvt, Mouvements.LibelleMvt, Mouvements.MontantMvt, Mouvements.CodePmt, Mouvements.NumChq, Mouvements.CodeJrnl, Mouvements.CodeSsJrnl, Mouvements.Commentaire, SousJournal.NomSsJrnl, SousJournal.Tauxlivret, [Montant restant a placer].RestantAPlacer
    FROM SousJournal, Mouvements, [Montant restant a placer]
    WHERE SousJournal.CodeSsJrnl=Mouvements.CodeSsJrnl And [Montant restant a placer].CodeSsJrnl=Mouvements.CodeSsJrnl And (((Mouvements.CodeJrnl)="LIV"));
    Je vous remercie de m'éclaircir sur ce problème.
    Encore merci pour votre travail, et de votre sympathie.

    Bonne fin de journée,
    cordialement Jiben59.

  14. #14
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Es-tu sur que cela vienne de cette requête, car elle me paraît correcte.

    @+.

  15. #15
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Points : 74
    Points
    74
    Par défaut
    Bonsoir,

    soit c'est la requête "Montant restant a placer" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT SousJournal.CodeSsJrnl, [Operations des livrets].NomSsJrnl, SousJournal.SommeMaxi, Sum([Operations des livrets].MontantMvt) AS TotalLivret, [SommeMaxi]-[TotalLivret] AS RestantAPlacer
    FROM [Operations des livrets] INNER JOIN SousJournal ON [Operations des livrets].CodeSsJrnl=SousJournal.CodeSsJrnl
    GROUP BY SousJournal.CodeSsJrnl, [Operations des livrets].NomSsJrnl, SousJournal.SommeMaxi
    ORDER BY SousJournal.SommeMaxi-Sum([Operations des livrets].MontantMvt);
    ou alors c'est la requête "Operations des livrets" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Mouvements.NumMvt, Mouvements.DateMvt, Mouvements.LibelleMvt, Mouvements.MontantMvt, Mouvements.CodePmt, Mouvements.NumChq, Mouvements.CodeJrnl, Mouvements.CodeSsJrnl, Mouvements.Commentaire, SousJournal.NomSsJrnl, SousJournal.Tauxlivret, [Montant restant a placer].RestantAPlacer
    FROM SousJournal, Mouvements, [Montant restant a placer]
    WHERE SousJournal.CodeSsJrnl=Mouvements.CodeSsJrnl And [Montant restant a placer].CodeSsJrnl=Mouvements.CodeSsJrnl And (((Mouvements.CodeJrnl)="LIV"));
    Merci pour votre aide.

  16. #16
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Tes deux requêtes me semblent correctes.

    Mais le problème est quand tu veux ouvrir ton état, le problème est peut-être là...

    @+.

  17. #17
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2013
    Messages : 297
    Points : 74
    Points
    74
    Par défaut
    J'ai supprimer mon sous état, mais je rencontre toujours le même problème en l'ouvrant :

    Voici une capture d'écran de mon état :




    Donc, je ne comprends pas comment c'est encore possible de rencontrer un quelconque problème :s

    Bonne journée,
    cordialement Jiben59

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

Discussions similaires

  1. [TADOQuery] Problème avec une requête
    Par yannba dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/01/2006, 13h51
  2. Problème avec une requête
    Par demonark dans le forum Langage SQL
    Réponses: 3
    Dernier message: 19/09/2005, 05h35
  3. Problème avec une requête
    Par ringostarr dans le forum Langage SQL
    Réponses: 5
    Dernier message: 19/04/2005, 20h34
  4. Problème avec une requête
    Par snoopy69 dans le forum Débuter
    Réponses: 2
    Dernier message: 20/01/2005, 12h39
  5. problème avec une requête imbriquée
    Par jaimepasteevy dans le forum Langage SQL
    Réponses: 13
    Dernier message: 05/12/2003, 10h29

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