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 :

Afficher une partie d'un formulaire sur un état


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut Afficher une partie d'un formulaire sur un état
    Bonjour à tous.

    J'ai un formulaire principal contenant deux sous-formulaires.
    Sur ce formulaire principal, je fais différents calculs afin d'obtenir, la somme pour chaque jours des sous-formulaires. Je calcule aussi la somme du mois et enfin je calcule la somme par semaine.
    Les deux sous-formulaires proviennent tous les deux de requêtes analyse croisées.
    Ce que je souhaiterais c'est pouvoir afficher les différents totaux sur un état afin de pouvoir imprimer les deux sous-formulaires ainsi que les totaux.

    J'espère avoir été claire si ce n'est pas le cas n'hésitez à me demander plus d'informations.

    Merci à tous de votre aide.

  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 594
    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 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Bonjour,

    Que veux-tu faire exactement :

    - un état affichant les données des enregistrements actuellement actifs dans tes [sous-]formulaires ?
    Dans ce cas, il suffit de faire référence à ces contrôles, une propriété Source du genre, pour un contrôle du formulaire principal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = forms!LeFormulaire!LeControleDuFormulaire
    et pour un contrôle d'un sous-formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = forms!LeFormulaire!LeContainerDuSousFormulaire.Form!LeContrôleDuSousFormulaire
    Cela impose évidemment que le formulaire soit ouvert ;

    - un état qui liste tous les enregistrements ?
    Dans ce cas, il faut refaire les calculs dans l'état.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut
    Salut,

    Voci comment se présente le formulaire. J'ai les deux sous-formulaires et en dessous une partie totaux.
    Je souhaite afficher les sous-formulaires séparemment dans l'état, et je souhaite aussi ajouter la partie totaux.
    Le problème que je rencontre c'est que dans les sous-formulaire je n'arrive pas à afficher le total de chaque jours dans l'état. Par conséquent je ne peux donc pas faire la somme dans la partie totaux de l'état.

  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 594
    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 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Désolé, pas d'idée.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut
    En fait j'ai crée un sous-état pour chaque sous-formulaires (en utilisant les requêtes). Je voulais faire de même pour le total mais le problème c'est que comme la partie totale n'est pas un sous-formulaire, et ces valeurs ne sont stockées nulle part, je ne peux pas le faire.

  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 594
    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 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Si le formulaire est affiché, tu pourrais faire référence à ses contrôles.

    C'est le cas ?

    ----------

    Si le formulaire n'a pas de source, tu pourrais y mettre une table ad hoc et ainsi stocker les valeurs... pour les récupérer dans un 3e sous-état.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut
    Salut,

    Oui je voulais essayer de faire sa mais le soucis est que dans le sous-formulaire sur l'état je n'arrive pas à avoir la somme de chzque jours. Par conséquent il est impossible que je fasse la somme

  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 594
    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 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Est-ce que oui ou non, ton état concerne le seul enregistrement que ton formulaire affiche ? Par exemple ce que tu montres dans la miniature du billet N° 3.

    Si oui, chaque contrôle de ton formulaire a un nom et grâce à ce nom, tu peux récupérer la valeur de ce contrôle dans ton état.

    Donc pour être clair tu construis ton état en plusieurs sous-états.
    Si j'ai bien compris, avec tes requêtes, tu parviens à afficher les données détaillées dans deux sous-états.
    Je te propose donc de créer trois autres sous-états* (un pour chacune des séries de totaux) en pompant les résultats de ton formulaire.


    * ou un seul, si tu admets que ces 3 séries de totaux soient regroupées, en dessous des données de détail.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut
    Merci pour ta réponse, mais je ne sais pas comment faire.

    Parce que le soucis c'est que j'ai les deux sous-états construits à partir d'une requete analyse croisée. J'ai donc créée deux sous-formulaires basés sur ses deux requetes. J'ai un formulaire principal qui continet ces deux sous-formulaires, et une partie totaux qui calcule la somme par jour des deux sous-formulaires, la somme par semaine, et la somme par mois.

    Dans les sous-formulaires, j'ai une ligne avec la somme de chaque jour. Cepedant, cette ligne ne se remplit pas dans le sous-formulaire( à proprement parlé) mais seulement dans le sous-formulaire(en question) du formulaire principal.

    Donc même si je crée deux sous-etats contenant les sous-formulaires respectifs, je ne peux pas créer un troisième sous états pour la somme puisque la somme de chaque jour ne s'affiche pas dans les sous-états des sous-formulaire

  10. #10
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonjour Marg0t,

    1 - Tu enregistres tes 2 sous-formulaires en états.
    Les totaux par jours dans ces sous-états seront calculés par (Ex pour Total1):
    2 - Tu crées un état indépendant avec :
    - 2 sous-état.
    - 3 zones de textes qui auront comme sources les login du salarié, le mois et l'année choisis dans le formulaire (qui doit rester ouvert).
    - Des zones de textes qui feront les totaux par jour des valeurs des totaux des 2 sous états avec comme source (Ex : Total1):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = NomSousEtat1.report.Total1 + NomSousEtat2.Report.Total1
    3 - Il faudrait utiliser un module pour la présentation (en couleurs) du planning dans l'état selon les critères du formulaire.

    Je t'ai envoyé une copie de ta base.

    Bonne continuation,

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut
    Salut Madefemere,

    Oui je viens de voir la base je regarderai sa demain au calme.

    Ensuite pour l'état le problème est que je n'arrive pas à enregistrer mon sous-formulaire en état, j'ai cherché des infos sur internet mais je ne trouve pas la réponse mais j'ai bien eut des infos mais elles ne fonctionnent pas.

    Si tu as une idée de comment je peux faire cela.

    Bon en fait après plusieurs heures de recherche(j'y suis depuis ce matin) j'ai trouvé un post qui pourrait correspondre à cela. Donc je regardes pour enregistrer le sous-formulaire en état, et je te tiens au courant.

    En tout cas un grand merci pour ton aide

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut
    Bon alors voilà ce que j'ai trouvé mais je ne sais pas par quoi je dois remplacer les données.
    http://www.developpez.net/forums/d49...ir-formulaire/

    J'ai donc pensé mettre sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Imprimer_Imputable_Click()
    DoCmd.OpenReport stDocName, acPreview, , "[Pointage]=" & Me.SF_Pointage
    End Sub
    Mais il me dit incompatibilité de type, en surlignant SF.Pointage

    En fait en continuant mes recherches je viens de trouver un autre truc. C'est bien enregistrer le formulaire en état, je n'avais simplement pas pensé à passé par le menu fichier enregistrer l'objet sous...

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut
    Bon alors j'ai bien créé les états à partir des sous-formulaires mais le problème que je rencontre qui est logique est que la ligne de la somme est vide. En effet dans les sous-formulaires ouvert seuls, la ligne somme ne se fait pas. Par contre c'est en ouvrant le Frm_pointage qui contient les deux sous-formulaires que la ligne somme se calcule.

    Donc si je crée les états en enregistrant les sous-formulaires en états, la somme ne peut pas se faire.

  14. #14
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Re-,

    Tout ça est normal. Normalement cet état va TOUJOURS être ouvert à partir du formulaire de pointage et tenir compte du salarié, du mois et de l'année choisi dans celui-ci.

    Les totaux devront se faire par une sommation des valeurs JourI, I : 1 à 31 comme j'ai indiqué précédemment.

    @+

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut
    Salut à tous,

    Je rencontre encore des problèmes avec mes états. Tout d'abord j'ai complétement changé de méthode car ce que j'avais fait ne correspondais pas aux attentes. Alors en fait ce que je souhaite faire c'est insérer deux sous-états dans un même état. Les sous-etats sont complétement indépendants, l'un sert pour récupéer les heures imputables l'autre pour récupérer les heures non-imputable. J'ai donc crée ces deux sous-états, en utilisant un module pour pouvoir effectuer une mise en forme.
    Je souhaite pouvoir insérer ces deux sous-états dans un état principal, j'ai donc déplacer les deux sous-états dans l'état principal comme pour un formulaire et un sous-formulaire, le problème est que dans ce cas je n'ai plus la mse en page des sous-états.

  16. #16
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonjour Marg0t,

    Il est difficile de voir ce qui ne marche pas sans le code de :
    J'ai donc crée ces deux sous-états, en utilisant un module pour pouvoir effectuer une mise en forme

    Est-ce que tu veux dire que tu crées dynamiquement les contrôles de tes sous-états?

    @+

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut
    Alors voici le module que j'utilise pour chaque sous-états (ici donné pour avoir le sous-états de la partie imputable)
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Public Sub MajReportImputable()
    Dim ND As Integer, j As Integer
    Dim DateJ As Date
     
    ND = DaysInMonth(Forms!Frm_Pointage!Mois, Forms!Frm_Pointage!An)
    DateJ = DateSerial(Forms!Frm_Pointage!An, Forms!Frm_Pointage!Mois, 1)
     
    Reports!Détail_Mois_en_Cours_Pointage_Imputable!Titre.Caption = "Planning mensuel des heures imputables pour le mois de " & Format(DateJ, "mmmm yyyy")
     
    For j = 1 To ND
     
    Reports!Détail_Mois_en_Cours_Pointage_Imputable("Col" & j).Caption = UCase(Left(Format(DateJ, "ddd"), 1)) & vbCrLf & j
     
       If EstWeekEnd(DateJ) Or EstFerie(DateJ) Then
          Reports!Détail_Mois_en_Cours_Pointage_Imputable("Col" & j).BackColor = 13428479
          Reports!Détail_Mois_en_Cours_Pointage_Imputable("Jour" & j).BackColor = 13428479
          Reports!Détail_Mois_en_Cours_Pointage_Imputable("Total" & j).BackColor = 13428479
       Else
          Reports!Détail_Mois_en_Cours_Pointage_Imputable("Col" & j).BackColor = 16761024
          Reports!Détail_Mois_en_Cours_Pointage_Imputable("Jour" & j).BackColor = vbWhite
          Reports!Détail_Mois_en_Cours_Pointage_Imputable("Total" & j).BackColor = vbWhite
       End If
     
    DateJ = DateJ + 1
    Next j
     
    For j = 29 To ND
    Reports!Détail_Mois_en_Cours_Pointage_Imputable("Col" & j).Visible = True
    Reports!Détail_Mois_en_Cours_Pointage_Imputable("Jour" & j).Visible = True
    Next j
     
     
    For j = (ND + 1) To 31
    Reports!Détail_Mois_en_Cours_Pointage_Imputable("Col" & j).Visible = False
    Reports!Détail_Mois_en_Cours_Pointage_Imputable("Jour" & j).Visible = False
    Next j
     
    End Sub
    Ce même code s'utilise pour la partie non-imputable. J'insère les deux sous-états dans un état principal, mais le problème est que la mise ne apge faite grace a ce module ne reste pas dans l'état principal. Je souhaite donc faire pour un sous-formulaire quelque chose du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!Frm_Pointage!SF_Pointage.Form
    ou Frm_Pointage est le formulaire principal et SF_Pointage le sous-formulaire.

  18. #18
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    La syntaxe ne change pas. Normalement tu remplaces Forms par Reports et Form par Report. Ce qui donnerait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Reports!E_Pointage.SE_Pointage.Report("Controle")
    @+

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 161
    Points : 59
    Points
    59
    Par défaut
    Oui je viens de trouver cela à l'instant.

    Voici le code pour l'état principal
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Public Sub MajReport()
    Dim ND As Integer, j As Integer
    Dim DateJ As Date
    ST = 0
    ND = DaysInMonth(Forms!Frm_Pointage!Mois, Forms!Frm_Pointage!An)
    DateJ = DateSerial(Forms!Frm_Pointage!An, Forms!Frm_Pointage!Mois, 1)
    
    Reports!État1!Titre.Caption = "Planning mensuel des heures pour le mois de " & Format(DateJ, "mmmm yyyy")
    
    For j = 1 To ND
    
    Reports!État1.Détail_Mois_en_Cours_Pointage_Imputable.Report("Col" & j).Caption = UCase(Left(Format(DateJ, "ddd"), 1)) & vbCrLf & jReports!État1.Détail_Mois_en_Cours_Pointage_Non_Imputable.Report("Col" & j).Caption = UCase(Left(Format(DateJ, "ddd"), 1)) & vbCrLf & j
    
       If EstWeekEnd(DateJ) Or EstFerie(DateJ) Then
          Reports!État1.Détail_Mois_en_Cours_Pointage_Imputable.Report("Col" & j).BackColor = 13428479
          Reports!État1.Détail_Mois_en_Cours_Pointage_Imputable.Report("Jour" & j).BackColor = 13428479
          Reports!État1.Détail_Mois_en_Cours_Pointage_Non_Imputable.Report("Col" & j).BackColor = 13428479
          Reports!État1.Détail_Mois_en_Cours_Pointage_Non_Imputable.Report("Jour" & j).BackColor = 13428479
       Else
          Reports!État1.Détail_Mois_en_Cours_Pointage_Imputable.Report("Col" & j).BackColor = 16761024
          Reports!État1.Détail_Mois_en_Cours_Pointage_Imputable.Report("Jour" & j).BackColor = vbWhite
          Reports!État1.Détail_Mois_en_Cours_Pointage_Non_Imputable.Report("Col" & j).BackColor = 16761024
          Reports!État1.Détail_Mois_en_Cours_Pointage_Non_Imputable.Report("Jour" & j).BackColor = vbWhite
       End If
       
    DateJ = DateJ + 1
    Next j
    
    For j = 29 To ND
    Reports!État1.Détail_Mois_en_Cours_Pointage_Imputable.Report("Col" & j).Visible = True
    Reports!État1.Détail_Mois_en_Cours_Pointage_Imputable.Report("Jour" & j).Visible = True
    Reports!État1.Détail_Mois_en_Cours_Pointage_Non_Imputable.Report("Col" & j).Visible = True
    Reports!État1.Détail_Mois_en_Cours_Pointage_Non_Imputable.Report("Jour" & j).Visible = True
    Next j
    
    
    For j = (ND + 1) To 31
    Reports!État1.Détail_Mois_en_Cours_Pointage_Imputable.Report("Col" & j).Visible = False
    Reports!État1.Détail_Mois_en_Cours_Pointage_Imputable.Report("Jour" & j).Visible = False
    Reports!État1.Détail_Mois_en_Cours_Pointage_Non_Imputable.Report("Col" & j).Visible = False
    Reports!État1.Détail_Mois_en_Cours_Pointage_Non_Imputable.Report("Jour" & j).Visible = False
    Next j
    
    End Sub
    Lorsque je clique pour ouvrir état1, voici le message d'erreur: erreur 2465: erreur définie par l'application ou par l'objet. C'est apperemment à la ligneen rouge

  20. #20
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Vérifies qeu
    Détail_Mois_en_Cours_Pointage_Imputable
    est bien le nom de ton sous-état dans sa propriété Autres.

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/04/2009, 15h44
  2. afficher/masquer une partie d'un formulaire jsp
    Par maroosoft dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 07/01/2009, 13h47
  3. Affichage d'une partie d'un formulaire sur selection
    Par cUs3Mp dans le forum Langage
    Réponses: 5
    Dernier message: 22/12/2008, 14h27
  4. Opacité sur une partie d'un formulaire
    Par hellspawn_ludo dans le forum Windows Forms
    Réponses: 4
    Dernier message: 12/04/2007, 13h16
  5. Afficher / Cacher une partie d'un formulaire
    Par damjal dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/10/2005, 18h10

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