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 :

Inserer une requête directement dans un formulaire [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 Inserer une requête directement dans un formulaire
    Bonsoir,

    je suis entrain de perfectionner ma base de données de mon compte bancaire, et je coince sur un sujet qui est le suivant.

    J'ai créé un tableau de bord afin de récapituler le montant du solde du compte bancaire, et tous mes formulaires, tables et requêtes.

    Je souhaiterais obtenir des données directement sur le tableau de bord qui est la première page qui s'ouvre lors de l'ouverture de la base.
    Après avoir su intégrer le montant du solde bancaire directement sur cette base, je souhaiterais obtenir directement le montant de mes placements sur ce tableau de bord.

    Donc dans un premier temps j'ai créé une requête afin de faire ressortir tous les placements dont leur montant est supérieur à zéro :
    Nom de la requête : Montant_chaque_epargne_sup0

    Code de la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Mouvements.CodeJrnl, Sum(Mouvements.MontantMvt) AS MontantSsJrnl, SousJournal.NomSsJrnl, Mouvements.CodeSsJrnl
    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
    HAVING (((Mouvements.CodeJrnl)="EPAR") AND ((Sum(Mouvements.MontantMvt))>0));
    Visuelle de la requête : Nom : Visuel requete.JPG
Affichages : 168
Taille : 15,9 Ko

    Via cette requête, je souhaiterai que chaque noms des plans (=NomSsJrnl) et son montant (=Sum(Mouvements.MontantMvt)) se mettent sur mon tableau de bord.
    Le problème c'est que j'ai essayé de passer par une zone de texte, mais impossible d'y faire figurer les différents plans de placements.

    Voici où je souhaiterais mettre ma requête :
    Nom : emplacement de la requete.JPG
Affichages : 204
Taille : 47,0 Ko

    Je reste à votre disposition pour plus de renseignements.

    Je remercie la communauté qui m'aidera dans mon problème.

    Bonne soirée à vous, et mes meilleurs vœux pour 2018.

    Bien cordialement.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Mets ta requête en source d'un formulaire.

    Mets ton formulaire principal en mode création et glisse ce dernier formulaire dans le premier, cela devrait donner quelque chose.

    Philippe

  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
    Citation Envoyé par Philippe JOCHMANS Voir le message
    Bonjour

    Mets ta requête en source d'un formulaire.

    Mets ton formulaire principal en mode création et glisse ce dernier formulaire dans le premier, cela devrait donner quelque chose.

    Philippe
    Bonjour Philippe,

    dans un premier temps je te remercie pour ton aide.
    J'avais pensé à fonctionner via un sous-formulaire, mais le problème c'est que ceci n'est pas très esthétique au visuel.
    Voici le rendu :
    Nom : réalisation de l'aide.JPG
Affichages : 169
Taille : 52,5 Ko

    Mais je préfère obtenir un visuel via un texte c'est-à-dire,
    Plan 1 : XXX €
    Plan 2 : XXX€
    Plan 3 : ...

    C'est à dire obtenir le texte sans le cadre et les intitulées au dessous.

    Encore merci pour votre aide pour mon problème.

    Bonne journée à vous.

    Bine cordialement.

  4. #4
    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
    Désolé pour le double post.

    Du coup, je suis parti sur un codage VBA, ce que je ne maitrise pas vraiment mais il faut un début à tout.
    Donc, j'ai créé un module sous le nom "MenuEpargne", voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    Option Compare Database
     
    Option Explicit
     
     
    Sub InfosTxt(TypeAffich As Integer)
    'TypeAffich :  -1 Pour Zone de texte
     
        On Error GoTo Err_InfosTxt
        Dim oDb As DAO.Database
        Dim oRst As DAO.Recordset
        Dim StrNmEpar As String     ' variable nom épargne.
        Dim IntMtEpar As Integer    ' variable montant épargne.
        Dim StrSynt As String      ' variable résultat obtenu.
     
        Set oDb = CurrentDb
     
        'Création de la requête qui va déterminer l'épargne supérieur à zèro.
        Set oRst = oDb.OpenRecordset("MtEparSup0", dbOpenSnapshot)
     
     
        'Nous attribuons à la variable "StrNmEpar" le résultat de la colonne 1 de la requête
        'et à la variable "IntMtEpar" le contenu de la colonne 2.
        StrNmEpar = Nz(oRst.Fields(0), "")
        IntMtEpar = Nz(oRst.Fields(1), 0)
     
        'Détermination des résultats.
        Select Case StrNmEpar
            Case Is = ""
               'Création d'une boucle qui va déterminer les résultats sous la forme :
               '"    - Le Plan épargne à un solde de MontantEpargne" (+ retour chariot + saut à la ligne pour résultat suivant).
              StrSynt = ""
              While Not oRst.EOF
                     StrSynt = StrSynt & "    - Le " & oRst.Fields(0) & " à un solde de" & oRst.Fields(1) & vbCrLf
                     oRst.MoveNext
                  Wend
     
        End Select
     
        'Comme Source de la Zone de Texte, mise en place d'un titre + le résultat de la boucle.
        Select Case TypeAffich
            Case Is = -1    'met à jour la Zone de Texte
               Form_Menu.TxtEpargne.ControlSource = _
               "=" & """ Le solde des différentes épargnes actuellement est :" & vbCrLf & vbCrLf & StrSynt & """"
        End Select
     
        'Nous fermons les connexions
        oRst.Close
        oDb.Close
        Set oDb = Nothing
        Set oRst = Nothing
     
    Exit_InfosTxt:
        Exit Sub
     
    Err_InfosTxt:
        Resume Exit_InfosTxt
     
    End Sub

    Le nom de mon formulaire s'intitule "Menu", et ma requête "MtEparSupO"

    Mais lorsque j'ouvre mon formulaire rien ne se passe.
    Je pense que le problème peut provenir à un oubli dans mon codage afin d'exécuter mon module lors de l'ouverture du formulaire, ou bien j'ai oublié d'effectuer une manipulation à faire sur la zone de texte créé dans le formulaire "Menu".
    Si une personne peut me dire ce qu'il en pense, et me donner des conseils et remarques constructives afin de progresser s'il vous plaît.

    Dans l'attente de vous lire, bonne journée à vous.

    Cordialement Benjamin.

  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
    Bonjour,

    n'ayant pas obtenu de réponse, j'essaie depuis plusieurs jours de trouver mon bonheur dans le codage VBA mais ne se cachons rien, je suis loin du niveau débutant..

    Voici le code que j'ai performé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    Option Compare Database
     
    Option Explicit
    Sub InfosTxt(TypeAffich As Integer)
     
        On Error GoTo Err_InfosTxt
        Dim oDb As DAO.Database²
        Dim oRst As DAO.Recordset
     
        Set oDb = CurrentDb
        Set oRst = Db.OpenRecordset("Montant des sous journaux") 'recordset contient tous les champs de sa source.
     
         'Je lis la requete montant des sous journaux pour n'afficher que les informations concernant l'épargne
         SQL = "SELECT SousJournal.NomSsJrnl, Sum(Mouvements.MontantMvt) AS MontantSsJrnl " _
                & "FROM SousJournal, Mouvements, [Somme du Compte Courant] " _
                & "WHERE (((SousJournal.CodeSsJrnl) = [Mouvements].[CodeSsJrnl]))" _
                & "GROUP BY SousJournal.NomSsJrnl, Mouvements.CodeJrnl, Mouvements.CodeSsJrnl, " _
                & "[Somme du Compte Courant].SommeDuCompteCourant " _
                & "HAVING (((Sum(Mouvements.MontantMvt))>0) AND ((Mouvements.CodeJrnl)=EPAR));"
     
     
        NmEpar = r![NomSsJrnl] 'Renvoi le nom du sous journal
        MtEpar = r![MontantSsJrnl] 'Renvoi le montant du sous journal
     
     
        'Détermination des résultats.
        Select Case NmEpar
            Case Is = ""
               'Création d'une boucle qui va déterminer les résultats sous la forme :
               '- Le Plan épargne à un solde de MontantEpargne (+ retour chariot + saut à la ligne pour résultat suivant).
              StrSynt = ""
              While Not oRst.EOF
                     StrSynt = "- Le " & NmEpar & " à un solde de " & MtEpar & vbCrLf
                     oRst.MoveNext
                  Wend
        End Select
     
        'Comme Source de la Zone de Texte, mise en place d'un titre + le résultat de la boucle.
        Select Case TypeAffich
            'TypeAffich :  -1 Pour Zone de texte
            Case Is = -1    'met à jour la Zone de Texte
               Form_Menu.TxtEpargne.ControlSource = _
               "=" & """ Le solde des différentes épargnes actuellement est :" & vbCrLf & vbCrLf & StrSynt & """"
        End Select
     
        oRst.Close
        oDb.Close
     
        Set oDb = Nothing
        Set oRst = Nothing
     
    Exit_InfosTxt:
        Exit Sub
     
    Err_InfosTxt:
        Resume Exit_InfosTxt
    End Sub
    Les points bloquant que je rencontre actuellement :
    - comment appliquer mon code SQL sur les champs que je souhaite afficher dans mon texte afin d'obtenir que les sous journaux d'épargne supérieure à 0.
    - comment effectuer ce code dès l'ouverture du formulaire "Menu"

    Après je ne peux garantir que le code fonctionne et qui soit correcte.

    Je remercie toutes les personnes qui vont essayer de m'apporter de l'aide sur mon problème de codage.

    Bien cordialement,
    Benjamin.

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

Discussions similaires

  1. [OL-97] inserer une pièce jointe dans un formulaire
    Par maniveaudelaye dans le forum Outlook
    Réponses: 0
    Dernier message: 30/10/2012, 21h31
  2. Réponses: 6
    Dernier message: 22/10/2012, 23h50
  3. [Débutant] inserer une animation flash dans le formulaire c#
    Par ahmedkam dans le forum C#
    Réponses: 3
    Dernier message: 25/04/2012, 18h54
  4. [OpenOffice][Base de données] Afficher des paramètres d'une requête paramétrée dans un formulaire
    Par ggnore dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 02/09/2009, 11h37
  5. résultat d'une requête Somme dans un formulaire
    Par chrislauxerrois dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 03/08/2006, 15h29

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