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 :

MAJ d'une requête source pour un sous formulaire


Sujet :

IHM

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Points : 451
    Points
    451
    Par défaut MAJ d'une requête source pour un sous formulaire
    Bonjour à tous
    J'ai quelque difficulté à faire ce que je souhaiterai donc je viens vers vous

    J'ai créé un formulaire avec un sous formulaire qui est un graphique croisé dynamique
    Sur ce graphique j'affiche l'ensemble de mes commandes(mon appli est pour la vente de produit) sur une période donnée. Pour choisir cette période, j'ai mis dans le formulaire principale 2 contrôles de types calendrier

    Je souhaiterai que lors du clic sur un bouton, avoir une mise à jour du graphique.
    J'ai donc récupéré les dates, mis à jour la requête du sous formulaire (voir code ci dessous) puis utilisé la méthode requery mais en vain
    Avez vous une explication ?

    Dans le formulaire principale :
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub SubmitAfficher_Click()
    CurrentDb.QueryDefs("rqTest").sql = "SELECT NumCommande, SatutCommande FROM maTable " & _
    "WHERE dateCommande BETWEEN #" & Format(CalendrierDebut.Value & " " & DateTime.Time, "mm/dd/yyyy hh:mm:ss") & " #  AND #" & Format(CalendrierFin.Value & " " & DateTime.Time, "mm/dd/yyyy hh:mm:ss") & "# " & _ 
    "ORDER BY NumCommande;"
    Me.Controls("Sous Formulaire").Form.Requery

    j'ai vérifié la requête est correcte (je l'ai adapté pour le sujet donc ne vous fier pas au éventuelles erreurs) et me donne bien les valeurs attendu après avoir appuyé sur le bouton. Par contre le graphique lui ne bouge pas

  2. #2
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 591
    Points
    3 591
    Billets dans le blog
    8
    Par défaut
    Salut
    J'ai tester le principe. Je pense que le formulaire ne voie pas les changements de la requête. Mais tu peux passer par...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub SubmitAfficher_Click()
    Dim strsql as string
    strsql = "SELECT NumCommande, SatutCommande FROM maTable " & _
    "WHERE dateCommande BETWEEN #" & Format(CalendrierDebut.Value & " " & DateTime.Time, "mm/dd/yyyy hh:mm:ss") & " #  AND #" & Format(CalendrierFin.Value & " " & DateTime.Time, "mm/dd/yyyy hh:mm:ss") & "# " & _ 
    "ORDER BY NumCommande;"
    Me.Controls("Sous Formulaire").Form.RecordSource=strsql
    Me.Controls("Sous Formulaire").Form.Requery

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Points : 451
    Points
    451
    Par défaut
    Merci pour ta réponse
    Par contre, j'ai l'impression de perdre les informations de champs de filtre, de séries et de catégories. Du coup, le graphique est vide sauf si je replace manuelle ces informations mais il y a sûrement un moyen de les indiquer en VBA non ?

  4. #4
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 591
    Points
    3 591
    Billets dans le blog
    8
    Par défaut
    salut
    Voir ici et
    @+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Points : 451
    Points
    451
    Par défaut
    Merci pour ces liens mais sauf si je n'ai pas compris, mon objet est un formulaire et non un MS Graph. non ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Points : 451
    Points
    451
    Par défaut
    J'ai un début de réponse
    En utilisant le ChartSpace, j'arrive à avoir le champs de séries par contre je ne trouve pas comment faire pour les autres. J’image que c'est une histoire de variable mais la documentation est réduite à ce sujet

    Pour obtenir le champs de série voila la ligne ajoutée :
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Controls("Sous form").Form.ChartSpace.SetData chDimSeriesNames, chDataBound, "StatutCommande"

    EDIT :
    Pour les catégories et les valeurs, j'ai également trouvé :
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.Controls("Sous form").Form.ChartSpace.SetData chDimCategories, chDataBound, "id"
    Me.Controls("Sous form").Form.ChartSpace.SetData chConstants.chDimValues, chConstants.chDataBound, "durée"

    Il me reste le champ de filtre à trouver ainsi que la manière de définir la fonction utilisée pour les valeurs afin de ne pas avoir la somme mais plutôt la moyenne

Discussions similaires

  1. [AC 2000] Lancer une requête à partir d'un sous formulaire
    Par Flow56 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 26/08/2010, 16h07
  2. Parser une requête SQL pour MySQL
    Par gassla dans le forum SGBD
    Réponses: 3
    Dernier message: 02/08/2006, 15h36
  3. [MySQL] nombre d'enregistrements maj dans une requête update
    Par erwan.bodere dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/06/2006, 16h11
  4. Réponses: 1
    Dernier message: 21/03/2006, 14h29
  5. Creer une requéte access pour choisir des textes word
    Par mariekero dans le forum Access
    Réponses: 1
    Dernier message: 16/01/2006, 10h25

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