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

Access Discussion :

Mise en page état, choix dynamique de position d'un "bloc de contrôle" [AC-2013]


Sujet :

Access

  1. #1
    Membre régulier
    Femme Profil pro
    emploi
    Inscrit en
    Mars 2014
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : emploi

    Informations forums :
    Inscription : Mars 2014
    Messages : 138
    Points : 99
    Points
    99
    Par défaut Mise en page état, choix dynamique de position d'un "bloc de contrôle"
    Bonjour à tous,


    Je ne sais pas si mon titre est suffisamment évocateur de mon problème:

    J'ai un état (qu'on pourrait appelé facture) qui fait le lien entre un formulaire client, un formulaire facture et un formulaire contenant les lignes de facture.
    Il se présente de tel sorte:
    - entête d'état: données entreprises (les miennes), données du client ainsi que les données de la facture (sans les lignes)
    - entête d'état: les désignations de contrôle de mes lignes de facture
    - détails: les lignes de la facture
    - pied de page: données perso type mentions légales
    - pied d'état: les totaux généraux (HT, TTC, TVA...) de toutes mes lignes de factures que j'appelle "bloc totaux" (qui contient des zones de textes et qui fait partit du formulaire contenant les lignes de facture)

    Le soucis est que en cas de facture courte, les totaux dans le pied d'état sont pas assez bas à mon goût, la solution serait donc de mettre mon bloc totaux dans le pied de page du coup; mais en cas de facture longue (2 pages ou plus), le bloc totaux dans le pied de page deviendrait redondant et cela serait horrible et encore pire cela serait simplement une aberration...

    Existe t'il un moyen pour que l'état choisisse de lui même la meilleure position de ce bloc totaux? (Je le traduirais comme ceci "SI document = x VarPage ALORS bloc_totaux dans pied_page de la VarPage n°x" Si quelqu'un sait me traduire ça en VBA ce sera impeccable ou si quelqu'un a mieux à proposer)


    Merci pour votre attention.

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Bonjour,

    Je ferais comme ceci :
    - dans la source de l’état, j’ajouterais un champ vide (appelons-le « bidon »)
    - dans Trier et grouper, on crée un groupe sur «bidon » avec un pied de groupe
    - dans la section Détail : le détail des items de la facture
    - dans la section Pied de Groupe bidon : les totaux.

  3. #3
    Membre régulier
    Femme Profil pro
    emploi
    Inscrit en
    Mars 2014
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : emploi

    Informations forums :
    Inscription : Mars 2014
    Messages : 138
    Points : 99
    Points
    99
    Par défaut
    Bonjour,


    Merci pour ta réponse.

    Je rencontre des difficultés néanmoins, probablement dû a une légère incompréhension sur la manipulation.

    Tout d'abord, j'aurais peut être dû préciser que mon état est basé sur une requête qui regroupe 3 tables et afin d'obtenir le résultat de cette requête, au lancement de l'état une boite de dialogue demande la valeur de [ID_Facture] (qui correspond à mon num de facture).

    - Ajouter un champ vide "bidon" dans la source de l'état -> Peux tu me donner un peu plus détails: ce champ doit faire partit d'une de mes tables qui définit la requête? Ou Est-ce une expression? Ou autre?
    - Ajouter un groupe bidon (ok)
    - Section détail: les lignes de la facture (comme c'était au départ, je n'ai donc rien à modifier ici)
    - Pied de groupe bidon: les totaux -> Je l'ai fait, mais mes totaux apparaissent exactement comme si ils étaient dans le pied d'état... J'ai du mal interprété quelque chose je pense.


    Petite remarque, tant qu'à faire des essais, j'ai voulu déplacer mes totaux dans mon pied de page et ceux la m'indiquent #Erreur, je ne saisis pas pour quelle raison. Mes totaux fonctionnent correctement dans le pied d'état et dans le pied de groupe mais dès que je met dans le pied de page non. (Info: mes totaux sont des zones de texte avec un calcul type "=Somme([S_Total])" , S_Total étant un champ présent dans mes lignes de facture)


    A bientôt.

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Peux-tu poster un échantillon de ta db dans une version compatible Access2000 avec de quoi produire ton état ?
    Cela me permettra de te donner un exemple concret.

  5. #5
    Membre régulier
    Femme Profil pro
    emploi
    Inscrit en
    Mars 2014
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : emploi

    Informations forums :
    Inscription : Mars 2014
    Messages : 138
    Points : 99
    Points
    99
    Par défaut
    Merci pour ta rapidité.

    Je t'ai mis en pièce jointe l'essentiel de la db (tables concernées, requête et l'état).

    (Voir la pièce jointe un peu plus bas de Robert1957 qui l'a convertit en 2000)

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    J'utilise Access2000 => si tu veux mon aide, tu dois me fournir un fichier .mdb.

    Vois ici la procédure pour convertir en Access2000.

  7. #7
    Membre régulier
    Femme Profil pro
    emploi
    Inscrit en
    Mars 2014
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : emploi

    Informations forums :
    Inscription : Mars 2014
    Messages : 138
    Points : 99
    Points
    99
    Par défaut
    Toute mes excuses, j'avais oublié cela...

    Par contre j'ai un soucis au moment de convertir, il me le refuse à cause de mes champs calculés... une solution?

  8. #8
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Ils ne sont probablement pas indispensables pour l'explication.

    Prends donc une copie de ta db.

    Dans cette copie, supprime tes champs calculés, la conversion ne devrait alors plus faire problème.

  9. #9
    Membre régulier
    Femme Profil pro
    emploi
    Inscrit en
    Mars 2014
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : emploi

    Informations forums :
    Inscription : Mars 2014
    Messages : 138
    Points : 99
    Points
    99
    Par défaut
    entièrement d'accord, ils sont totalement facultatifs pour l'explication...

    Hélas, j'ai supprimé ces champs ainsi que d'autres qui pourraient poser problème mais la conversion m'est toujours refusé. Je regarde pour faire le nécessaire, je fais au plus vite (je vais essayer de créer un nouveau fichier vite fait).

  10. #10
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 878
    Points : 3 467
    Points
    3 467
    Par défaut
    Bonjour Claude,

    Voici la base.

    Bonne journée
    Fichiers attachés Fichiers attachés

  11. #11
    Membre régulier
    Femme Profil pro
    emploi
    Inscrit en
    Mars 2014
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : emploi

    Informations forums :
    Inscription : Mars 2014
    Messages : 138
    Points : 99
    Points
    99
    Par défaut
    Merci beaucoup pour la conversion...
    Petite question à ce sujet, pourquoi étais-je coincé pour réaliser la conversion malgré que j'ai enlevé les champs calculés ainsi que les champs pièces jointes et champs à choix multiples?

    A bientôt.

  12. #12
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 878
    Points : 3 467
    Points
    3 467
    Par défaut
    Bonjour Defaultuser01,

    Tu avais des pièces jointes dans la table MSysResources

    Bonne journée

  13. #13
    Membre régulier
    Femme Profil pro
    emploi
    Inscrit en
    Mars 2014
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : emploi

    Informations forums :
    Inscription : Mars 2014
    Messages : 138
    Points : 99
    Points
    99
    Par défaut
    Oh.... en effet, désolé, je n'ai pas encore acquis tous les réflexes de travail nécessaires sur Access, mais j'y travail.
    Merci à toi et bonne journée.

  14. #14
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Merci Robert pour cette nouvelle conversion.

    DefaultUser01, vois la requête « R_Facture_Client » que j’ai complétée pour y faire quelques calculs intermédiaires.
    Remarque que j’ai arrondi les montants de telle sorte que les additions apparaissent correctes et non biaisées à cause des arrondis.
    Tu trouveras la documentation de la fonction « ArrondirUnMontant » à cette adresse : http://www.developpez.net/forums/d97...arrondir-prix/
    Dans le cas qui nous occupe, je n’ai pas dû ajouter un champ « bidon » pour disposer d’une section qui me permet de loger le total des items du détail dans son pied : ID_Facture a fait l’affaire.
    Fichiers attachés Fichiers attachés

  15. #15
    Membre régulier
    Femme Profil pro
    emploi
    Inscrit en
    Mars 2014
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : emploi

    Informations forums :
    Inscription : Mars 2014
    Messages : 138
    Points : 99
    Points
    99
    Par défaut
    Merci beaucoup Claude pour ton fichier.

    En effet, je ne suis pas encore à l'aise avec les modules (voir pas du tout) et tu as devancé en quelques sortes une de mes éventuelles futures demandes au sujet des arrondis qui étaient horribles dans mes calculs.

    J'ai déjà parcouru ton fichier (je vais très certainement me faire les dents dessus une bonne partie de la soirée et je vais en profiter pour lire attentivement le lien que tu m'as transmis).

    Par contre je m'étais peut être mal exprimé au sujet de la mise en page dans le sens ou j'aurais voulu que mon total soit effectivement en pied de page MAIS lorsque j'ai une facture avec plusieurs pages, le total deviendrait redondant et je me demandais comment le faire apparaître uniquement au bas de la dernière page de facturation (si cela est possible sans non plus faire des modifications majeures).


    A bientôt.

  16. #16
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    J'ignore comment éviter cette répétition.

    Mais pourquoi diable, veux-tu placer tes totaux au bas d'une page plutôt qu'à la suite du dernier item ?

  17. #17
    Membre régulier
    Femme Profil pro
    emploi
    Inscrit en
    Mars 2014
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : emploi

    Informations forums :
    Inscription : Mars 2014
    Messages : 138
    Points : 99
    Points
    99
    Par défaut
    Haha je m'attendais à cette question et elle est très légitime dans le sens ou en effet, avec les calculs de totaux dans le pied de groupe, c'est très propre...

    J'ai créé ma petite entreprise il y a peu de temps et avec les moyens du bord on va dire si bien que les premiers mois nous faisions nos factures sous Word et notre fichier client était.... une simple table Access (sans formulaire ni rien d'autre car je ne savais tout simplement pas comment Access fonctionnait!). Au fil du temps et en suivant divers tutos/fils de discussion ici et la et en particulier sur ce forum et en utilisant les connaissances que j'avais déjà en SQL, j'ai réussis à me débrouiller tant bien que mal à créer un fichier client digne de ce nom (enfin.... c'est pas encore le top mais bon, j'y arriverais ) avec la gestion / impression de facture.
    Bref tout cela pour dire que au moment de créer mon état qui devait servir de facture, je me suis beaucoup penché sur les factures d'entreprises que je connaissais qui étaient implantées depuis un certain moment et sur la majorité les totaux étaient en pied de page...

    Après.... il est vrai que ce n'est pas parce que les autres font ainsi que je suis obligé de faire pareil, mais vu que cela concernait la majorité des factures que je regardais, je me suis dit qu'il y avait peut être une raison à cela.... qui sait?

    Je vais maintenir mes totaux dans le pied de groupe, néanmoins si quelqu'un a la solution pour cette mise en page avec les totaux uniquement en pied de page finale, je suis preneuse ne serait-ce que par souhait de connaître la méthode. (Faut croire que quand on a gouté au potentiel d'Access on souhaite toujours en savoir plus).

  18. #18
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Après.... il est vrai que ce n'est pas parce que les autres font ainsi que je suis obligé de faire pareil, mais vu que cela concernait la majorité des factures que je regardais, je me suis dit qu'il y avait peut être une raison à cela.... qui sait?
    Ils n'ont peut-être pas trouvé le moyen de les placer juste après le dernier item !

    Maintenant, s'ils te questionnent, tu sauras quoi leur répondre !

    Au plaisir de te recroiser.

  19. #19
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Juste pour le fun !

    … néanmoins si quelqu'un a la solution pour cette mise en page avec les totaux uniquement en pied de page finale, je suis preneuse ne serait-ce que par souhait de connaître la méthode. (Faut croire que quand on a gouté au potentiel d'Access on souhaite toujours en savoir plus).
    L’idée
    On va loger les totaux dans le pied de page.
    Pour ne les faire apparaître que sur la dernière page, on va les définir avec la propriété « Visible » égale à Non et, par le code, on les rendra visibles seulement sur la dernière page.
    La dernière page a ceci de particulier que la valeur de Me.Page égale celle de Me.Pages, on s’en servira pour rétablir la visibilité.
    N.B. Il faut donc que l’état contienne deux contrôles dont les sources sont Page et Pages (éventuellement non visibles).

    Astuce
    Je n’ai pas trouvé le moyen de créer, dans le pied de page, des contrôles qui donnent directement les totaux : les syntaxes du style « =Somme([NomDuChamp]) » donnent une erreur comme résultat.
    Pour contourner, j’ai mis dans le pied de page des contrôles indépendants (i.e. propriété « Source contrôle » vide), ils s’appellent respectivement TlRemise,TlNet,TlTVA et TlGen.
    Dans la section « Détail », j’ai cloné les contrôles à cumuler en les appelant respectivement CumulRemise, CumulNet, CumulTVA et CumulGen. Ils ont la même source que leur original, mais « Non visibles » et leur propriété « Cumul » vaut « En continu ».






    En fin de processus, ces contrôles contiendront donc les totaux convoités. Par le code, on copiera leur valeur dans les contrôles « Tlxxxx » respectifs.

    Code
    Dans l’événement « Sur impression » de la section « Pied de page », ce code pour afficher le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub ZonePiedPage_Print(Cancel As Integer, PrintCount As Integer)
      If Me.Page = Me.Pages Then
         Me.TlRemise = Me.CumulRemise
         Me.TlNet = Me.CumulNet
         Me.TlTVA = Me.CumulTVA
         Me.TlGen = Me.CumulGen
         Me.TlRemise.Visible = True
         Me.TlNet.Visible = True
         Me.TlTVA.Visible = True
         Me.TlGen.Visible = True
         Me.eTotaux.Visible = True
         Me.Cadre.Visible = True
      End If
    End Sub
    Fichiers attachés Fichiers attachés

  20. #20
    Membre régulier
    Femme Profil pro
    emploi
    Inscrit en
    Mars 2014
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : emploi

    Informations forums :
    Inscription : Mars 2014
    Messages : 138
    Points : 99
    Points
    99
    Par défaut Super!
    Bonjour,


    J'avais effectivement noté que dans le pied de page la syntaxe =Somme([Champ]) donne une erreur, chose que je trouve d'ailleurs étrange...

    Tous mes remerciements pour cette astuce!


    Bonne continuation et à bientôt.

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

Discussions similaires

  1. Mise en page état
    Par Sylcoco dans le forum IHM
    Réponses: 36
    Dernier message: 19/02/2019, 20h47
  2. Mise en page état
    Par Tonyown dans le forum IHM
    Réponses: 1
    Dernier message: 23/12/2014, 14h11
  3. [AC-2003] mise en page état
    Par taz devil dans le forum IHM
    Réponses: 1
    Dernier message: 10/04/2012, 16h26
  4. Réponses: 0
    Dernier message: 05/12/2007, 12h01
  5. [Access 2000] Mise en page état
    Par Brosseux dans le forum IHM
    Réponses: 1
    Dernier message: 11/12/2006, 18h18

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