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 :

Formulaire avec requête analyse croisée paramétrée [AC-2013]


Sujet :

IHM

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2016
    Messages : 17
    Points : 13
    Points
    13
    Par défaut Formulaire avec requête analyse croisée paramétrée
    Bonjour à tous,

    J'ai récemment lu le très bon tutoriel de Fabrice Constans sur les requête analyse croisée paramétrée http://loufab.developpez.com/tutorie.../analyseparam/
    J'ai ainsi réalisé une requête qui me permet d'avoir, pour un objet précis (sélectionné grâce à une liste déroulante sur formulaire), les sorties vers différentes allocations pour un nombre de jour donnée (sélectionnés avec deux entrées textes sur formulaire).
    Ma requête analyse croisée est donc composée en En-têtes de ligne de l'Objet et de la/des dates de sorties; en En-tête de colonne les différentes Allocations et en valeur de la somme de Quantité sortie à cette date et allocation. (J'espère avoir été assez clair...sinon je posterai la requête en image)

    Je réalise la requête paramétrée avec une procédure événementiel sur clic d'un bouton en VBA comme expliqué dans le tutoriel de Fabrice Constans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub ComAjoutArticle_Click()
    Dim Sql As String
    Sql = Sql & "TRANSFORM Sum(tSorties.SortieQuant) AS SommeDeSortieQuant "
    Sql = Sql & " SELECT tArticles.tArticleCode, tSorties.SortieDate"
    Sql = Sql & " FROM tArticles INNER JOIN tSorties ON tArticles.tArticleCode = tSorties.tArticleCode"
    Sql = Sql & " WHERE (((tArticles.tArticleCode) = " & Me.CboArticle & ") And ((tSorties.SortieDate) > #" & Format(Me.txtDate1, "mm/dd/yyyy") & "# And (tSorties.SortieDate) < #" & Format(Me.txtDate2, "mm/dd/yyyy") & "#))"
    Sql = Sql & " GROUP BY tArticles.tArticleCode, tSorties.SortieDate"
    Sql = Sql & " PIVOT tSorties.SortieArea;"
     
    DoCmd.DeleteObject acQuery, "rSortiesAllocation"
    CurrentDb.CreateQueryDef "rSortiesAllocation", Sql
    'DoCmd.OpenQuery "rSortiesAllocation"
    End Sub
    La création de la requête fonctionne très bien, mon problème est que j'aimerai afficher sur le même formulaire les sommes de quantités par allocations :
    J'ai donc créer un sous formulaire avec des textes composés de "Nz(SomDom("colonne"; "requête"); 0).
    J'ai cependant 2 problèmes:

    - Le premier est que je n'arrive à actualiser le sous-formulaire. J'ai inséré dans la procédure sur-clic "Me.SousFormulaire.Form.Requery" mais cela ne fonctionne pas. L'actualisation se fait uniquement lorsque je ferme et ré-ouvre le formulaire ou passe en mode création puis formulaire.

    - Le deuxième, moindre, est que certains objets ne possèdent pas de sorties à certaines allocations, et donc la somme de quantités revient à faire une somme sur domaine d'une expression qui n'existe plus (la colonne n'existant plus après recréation de ma requête), et j'obtient sur ma zone de texte un "#Nom*?". Je pensais que le Nz avant la somme aurait pu régler ça, mais non.

    Voilà désolé pour le long texte, mais je voulais bien expliquer mon problème. Merci d'avance pour tout conseil apporté

  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
    Bon, je ne suis pas tout à fait sur de bien comprendre ce qui se passe mais voici toujours une piste.
    Si j'ai bien compris, le SubForm a comme ControlSource la requête rSortiesAllocation.
    Quand le SubForm s'ouvre, il va chercher la formule de la requête rSortiesAllocation ... et la conserve en mémoire.
    Si ensuite cette requête rSortiesAllocation est modifiée, cela change la requête
    ... mais ne va pas changer ce qui se trouve en mémoire dans le SubForm ouvert, ... et donc le Requery n'a pas d'effet.
    Pour cela il faudrait ajouter une instruction SubForm.ControlSource = rSortiesAllocation pour y inscrire la nouvelle version de cette requête
    (et sans doute un Requery ou un Recalc ensuite)

    A noter qu'il n'est pas nécessaire de supprimer/recréer la requête. Il est plus simple d'écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.QueryDefs("rSortiesAllocation ").SQL = Sql
    Cdt.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2016
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Bonjour,
    Merci de ta réponse, en effet j'ai compris d'où vient mon problème, c'est beaucoup plus clair maintenant. Je vais essayer comme ça même si j'ai finalement réussi à contourner le problème sans passé par une requête Analyse croisée. Et désolé du temps de réponse, j'étais relativement occupé.
    Merci beaucoup

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

Discussions similaires

  1. [AC-2007] Critère sur formulaire pour Requête analyse croisée
    Par pierrequimousse dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/08/2010, 15h32
  2. Etat dynamique avec requête analyse croisée
    Par roman33 dans le forum IHM
    Réponses: 2
    Dernier message: 03/05/2010, 13h22
  3. Requête analyse croisée paramétrée
    Par Chippen dans le forum VBA Access
    Réponses: 1
    Dernier message: 21/02/2008, 15h14
  4. Requête analyse croisée+paramètres
    Par tcorcy dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 25/05/2007, 17h51
  5. pb tutoriel "requête analyse croisée paramétrées"
    Par karidrou dans le forum Access
    Réponses: 6
    Dernier message: 23/03/2006, 11h21

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