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 :

Rq Analyse Croisée et état (ds tout ses états..)


Sujet :

IHM

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 15
    Points
    15
    Par défaut Rq Analyse Croisée et état (ds tout ses états..) Help!
    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 :

    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
    Thanx anticipés & Bien à vous

    guyCnet

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    As-tu essayé en nommant les colonnes....


    QQ chose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sql = Sql & " GROUP BY Requête2.SuperFamilleLib, Requête2.Controle, Requête2.Exercice " & _
     "IN ('RC','AVOIR','BONUS')  "
    ...
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  3. #3
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,

    Le problème va être au niveau de l'état. Il ne va pas trouver les champs qu'il attend.

    Essaie de voir si cette source te permet de résoudre ton problème.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 15
    Points
    15
    Par défaut Thanx !
    Lou, je pense que tu m'as fourni une soluce sur mesure ;-) (soit dit en passant, tout seul, j'aurais pu chercher longtemps... Hihihihihi !)

    Je n'ai pas le temps de tester tout de suite au bureau mais ce week-end... c'est sûr !

    Merci beaucoup tous les deux pour votre diligente contribution.
    Bien à vous & Bon week-end
    guyCnet

  5. #5
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Citation Envoyé par Lou Pitchoun Voir le message
    Salut,

    Le problème va être au niveau de l'état. Il ne va pas trouver les champs qu'il attend.

    Essaie de voir si cette source te permet de résoudre ton problème.
    Salut Lou Pitchoun,


    Cette solution est parfaite pour les cas complexes... mais s'il a un nombre de colonnes fixes et de contenu prévisible, c'est plus simple de mettre en dur dans la requête analyse croisée les colonnes, non ?
    ............................................................................................

    Dans l'intérêt de tous, ne posez pas de questions techniques par messages privés.

  6. #6
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    La difficulté est aussi dans le nom des colonnes qui changent.
    Cette solution permet de créer l'état même si seul le nom des colonnes change.

    Il peut spécifier le nombre exact de colonnes, supprimer les colonnes totaux horizontaux s'il le souhaite, etc...



    Ca lui évite tout de même de réécrire la requête ou de recréer les textbox avec les bons noms à chaque fois
    Citation Envoyé par mout1234 Voir le message
    Salut Lou Pitchoun,


    Cette solution est parfaite pour les cas complexes... mais s'il a un nombre de colonnes fixes et de contenu prévisible, c'est plus simple de mettre en dur dans la requête analyse croisée les colonnes, non ?

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 15
    Points
    15
    Par défaut Help !....
    e.Bonjour Toutes&Tous

    Je rame un peu avec le code de Lou ... l'état me renvoie une erreur 13 (type incompatible) à l'endroit suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Nblignes = Nblignes + Me("Detail" + Format(entX))
    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
    Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
     
    Dim entX As Integer
    Dim Nblignes As Long
     
        If Me.PrintCount = 1 Then
            Nblignes = 0
     
            For entX = 2 To NbColonnes
                Nblignes = Nblignes + Me("Detail" + Format(entX))
                Total_Colonnes(entX) = Total_Colonnes(entX) + Me("Detail" + Format(entX))
            Next entX
     
            Me("Detail" + Format(NbColonnes + 1)) = Nblignes
            Total_etat = Total_etat + Nblignes
        End If
    ... J'imagine que ça devrait aussi se produire ailleurs ;-)

    Je ne pige pas ce qui ne colle pas!

    Thanx anticipés
    Bonne soirée d'un dimanche glacé
    guyCnet

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 15
    Points
    15
    Par défaut Help bis...
    ... J'ai essayé toutes les variantes au niveau de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                 Me("Detail" + Format(entX))
    (Eh oui!... il arrive un moment où l'on perd la raison ...)

    Mais rien n'y fait ; snif!

    Au fait, je travaille sur Ac2007 mais c'est pour un environnemnt 2003...

    Thanx d'avance

  9. #9
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,

    Les données à afficher sont de quels types ?
    Peux donner un exemple des données attendues ?

  10. #10
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 15
    Points
    15
    Par défaut Suite.. et j'espère fin ;-)
    e.Bonjour Lou,

    Dans la section détail, les deux premiers champs recoivent effectivement du texte, les autres des valeurs...
    Ces chaines sont naturellement aussi "changeantes" (Voir pj pour te faire une idée du résultat).

    En testant sur Ac2003 ce matin, l'état me sort des TextBox8 alors que je n'avais pas ce phénomène avec Ac2007... (du moins en apparence)

    Thanx anticipés pour ta contribution.
    Excellente journée !
    guyCnet
    Images attachées Images attachées  

  11. #11
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    il faut que initialise entX à 3 et non 2 :

    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
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer) 
     
        Dim entX As Integer 
     
        If Not rstEnregistrement.EOF Then 
            If Me.FormatCount = 1 Then 
                For entX = 3 To NbColonnes 
                    Me("Detail" + Format(entX)) = Nz(rstEnregistrement(entX - 1), 0) 
                Next entX 
     
                For entX = NbColonnes + 2 To Nombre_colonnes 
                    Me("Detail" + Format(entX)).Visible = False 
                Next entX 
     
                rstEnregistrement.MoveNext 
            End If 
        End If 
     
    End Sub
    Ensuite, pour afficher les décimales, il te faut modifier la déclaration de certaines variables (Total_etat, NbLigne (d'ailleurs, je crois que le nom de variable est faux ) et Total_colonnes), sinon, tu auras des valeurs arrondies.

  12. #12
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 15
    Points
    15
    Par défaut
    e.Salutaire Toutes&Tous,

    Après quelques jours consacré à d'autres urgences, j'ai repris ce truc en main et malheureusement... ça ne marche toujours pas

    Au niveau des entêtes c'est ok... première ligne ok mais après nada... ça ne reproduit pas le nb de lignes. Et je n'ai pas trouvé d'erreur au niveau de la variable...

    Faut dire aussi que j'ai pas pigé toute la logique du code ;-)

    Thanx d'avance et quoiqu'il arrive, excellent réveillon à vous !
    Bien à vous

    guyCnet

Discussions similaires

  1. La Poo dans tout ses états..
    Par lotfi69 dans le forum Langage
    Réponses: 1
    Dernier message: 17/11/2014, 14h57
  2. Réponses: 7
    Dernier message: 04/09/2011, 19h14
  3. [WD14] Problème d'impression d'un état et de ses états imbriqués
    Par zatmania dans le forum WinDev
    Réponses: 1
    Dernier message: 10/11/2009, 11h54
  4. [AJAX] L'ajax dans tout ses états
    Par nimois3O dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/05/2007, 16h11

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