e.Bonjour Toutes&Tous
Voici mon petit problème :
J'ai créé un état qui est alimenté par une requête croisée (créée et paramétrée via VBA).
Le paramètre correspond à un exercice (l'année).
Il se trouve qu'en fonction de l'année, ou bien de la période choisie, ma requête ne fournit pas forcément de quoi "nourrir" tous les champs de mon état... d'où erreur d'exécution.
Il a y 3 à 4 champs numériques que la requête est susceptible de renvoyer quand tout va bien (par ex. RC, Avoir, Bonus, etc..) ; si en janvier j'ai reçu une RC et un avoir mais pas de Bonus... ça plante.
Comment faire en sorte que mon état force la valeur 0 aux champs sont renvoyés par ma requête?
Pour info, ci dessous code de ma requête croisée :
Thanx anticipés & Bien à vous
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 Dim Sql As String Dim MyCritere As Long MyCritere = Reports![Rp_CopieCAbyFournAndPrevRemisesByExerc]![Texte42] Sql = "TRANSFORM Sum(Nz([Requête2.SommeDeMontantRglt], 0)) AS SommeDeSommeDeMontantRglt " Sql = Sql & " SELECT Requête2.SuperFamilleLib AS [Super Famille], Requête2.Controle AS Dépendance, " Sql = Sql & " Sum(Nz([Requête2.SommeDeMontantRglt], 0)) AS Totaux " Sql = Sql & " FROM Requête2 " Sql = Sql & " WHERE (((Requête2.Exercice)= " & MyCritere & ")) " Sql = Sql & " GROUP BY Requête2.SuperFamilleLib, Requête2.Controle, Requête2.Exercice " Sql = Sql & " PIVOT Requête2.Categorie; " DoCmd.DeleteObject acQuery, "SyntCroisee" ' efface la requete existante CurrentDb.CreateQueryDef "SyntCroisee", Sql ' crée la nouvelle requete ' DoCmd.OpenQuery "SyntCroisee" ' ouvre la requete DoCmd.OpenReport "SyntCroisee", acViewPreview, , , acWindowNormal End Sub
guyCnet
Partager