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 :
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 :
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
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é
Partager