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 les dates correspondant au mois sélectionné dans un sous-formulaire [AC-2003]


Sujet :

IHM

  1. #1
    Candidat au Club
    Homme Profil pro
    Apprenti Ingénieur - Informatique et Réseaux de Communication
    Inscrit en
    Août 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti Ingénieur - Informatique et Réseaux de Communication

    Informations forums :
    Inscription : Août 2012
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Afficher les dates correspondant au mois sélectionné dans un sous-formulaire
    Bonjour à toute la sympathique communauté de Developpez.com,

    Je fais aujourd'hui appel à vos connaissances et vos compétences Access afin de trouver un moyen de réaliser l'évolution que je souhaiterais mettre en place dans mon outil de "Saisie d'activité collaborateur".

    Afin d'exprimer ma demande de la manière la plus claire et compréhensible possible, je vais commencer par vous présenter la structure partielle de ma base de données et je vous expliquerais ensuite ce que je souhaite réaliser.

    Structure de ma BDD

    •Je dispose d'un formulaire «frmSaisieJournaliereDetaillee», sur lequel est "posé" un sous-formulaire «sfrmSaisieJournaliereDetaillee_InsertionDate» qui donne la liste des jours travaillées (sous forme de date jj/mm/aaaa), pour un employé concerné.
    •Le formulaire est lié à une table «dentete» qui contient uniquement le nom des employés (ce sont les clefs primaires).
    •Le sous-formulaire est lié à une table «dligne» qui contient également le nom des employés et les dates travaillées pour chaque employés (ce sont tous 2 des clefs primaires).

    -A l'aide des flèches de navigation, je peux sélectionner un à un les différents employés dont le nom s'affiche dans une zone de texte de mon formulaire. En fonction de l'employé sélectionné, ses dates travaillées s'affichent alors dans le sous-formulaire en colonne les unes à la suite des autres avec la possibilité pour l'employé de saisir de nouvelles dates à la suite de la dernière date affichée.

    Mon problème

    C'est là que se trouve la faille de mon projet. Pour l'instant les employés n'ont rentrés que les jours travaillés du mois de Juillet, mais arrivé au mois de Décembre il y aura déjà 184 jours (moins les weekends et jours fériés) d'affiché, et je vous laisse imaginer le nombre de jours qui s'afficheront dans 5 ans... Bonjour la scrollbar infinie

    Mon besoin

    Mon idée aurait donc été de rajouter une zone de texte ou une liste déroulante dans le sous-formulaire (ou le formulaire à voir...) qui contiendrait tous les mois de l'année. Ainsi, j'aurai la possibilité de n'afficher que les dates travaillées correspondant au mois sélectionné (suivra ensuite une liste déroulante des différentes années pour sélectionner la bonne année ).

    Seulement voilà, mes tables sont bien liés entre elles par le nom des employés ce qui me permet de rechercher les dates travaillées pour un employés donné mais je n'ai pas la possibilité de rechercher les dates correspondant à un mois donné...

    La question est donc de savoir s'il existe un moyen (autre que de modifier toute la structure de ma base de donnée et de mes relations entre chaque table) pour effectuer cette recherche et s'il est possible d'extraire uniquement les dates de ma table «dligne» correspondant au mois sélectionné?

    Dites oui! Dites oui!!!

    PS: Le fait de récupérer le mois sous forme de string puis de le transformer en numérique [ex: "Juillet" -> 04] puis de rechercher dans le Recordset toutes les dates qui sont de la forme jj/04/aaaa et enfin de les afficher est une des solutions à laquelle j'ai pensé mais je ne sais pas du tout si cela pourrait marcher et comment la mettre en place n'étant pas du tout à l'aise avec les Recordset... =]

    Merci du fond du coeur pour avoir eu le courage de lire mon "commentaire/roman" et pour peut-être réussir à trouver une solution à mon problème.

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 768
    Points : 14 809
    Points
    14 809
    Par défaut
    Bonsoir,
    pourquoi n'utilises-tu pas le filtre par formulaire ? les boutons sont accessibles depuis la barre d'outils
    Tu appuies sur le bouton "Filtrer par formulaire" (entouré en rouge dans l'image jointe), si tu veux sélectionner le mois d'une année (exemple Août 2012) tu saisis dans le champ date :*/08/2012 et tu appuie sur le bouton "Appliquer filtre" (indiqué par la flèche rouge).

  3. #3
    Candidat au Club
    Homme Profil pro
    Apprenti Ingénieur - Informatique et Réseaux de Communication
    Inscrit en
    Août 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti Ingénieur - Informatique et Réseaux de Communication

    Informations forums :
    Inscription : Août 2012
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    En effet, c'est une solution à laquelle je n'avais pas pensé
    Mais je dois avouer que j'aurais tout de même préféré mettre en place quelque chose de plus convivial et "user friendly" où l'utilisateur n'aurait qu'à choisir un mois dans une zone de texte du formulaire pour faire apparaitre uniquement les dates du mois sélectionné (comme expliqué dans mon premier commentaire).

    Si cela est si facile à faire avec un simple bouton depuis la barre d'outils, il doit bien exister un moyen de mettre en place ce filtre via une sélection de mois directement depuis le formulaire sans avoir à trop se compliquer la vie

    ...du moins je l’espère

  4. #4
    Candidat au Club
    Homme Profil pro
    Apprenti Ingénieur - Informatique et Réseaux de Communication
    Inscrit en
    Août 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti Ingénieur - Informatique et Réseaux de Communication

    Informations forums :
    Inscription : Août 2012
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Problème résolu! J'ai trouvé la solution tout seul comme un grand! Bon j'dois avouer que j'ai un peu beaucoup été aidé par le site web suivant: http://www.pcastuces.com/pratique/wi...hes/filtre.htm

    Au cas où il y en aurait d'autres qui soit dans la même galère, voilà comment je m'y suis pris:

    J'ai réalisé la solution que j'avais exprimé dans mon premier message, en rajoutant une liste déroulante dans le sous-formulaire contenant tous les mois de l'année ainsi qu'une autre liste déroulante contenant les années. Il ne me restait plus qu'à rajouter le code suivant sur l'évenement "Sur clique" d'un bouton.

    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
    Dim vntMois As Variant, vntAnnee As Variant, vntDernierJourDuMois As Variant
    Dim dtmPremierJourDuMois As Date
    Dim strFiltre As String
     
    ' Initialise les variables en récupérant les valeurs des deux listes déroulantes
    vntMois = cboListeMois.Value
    vntAnnee = cboListeAnnee.Value
     
    vntMois = ConvertirMoisEnNumerique(vntMois)
    dtmPremierJourDuMois = CVDate("1/" & vntMois & "/" & vntAnnee)
    vntDernierJourDuMois = DateSerial(vntAnnee, vntMois + 1, 0)
     
    strFiltre = "[dligne_date] BETWEEN " & DateUS(dtmPremierJourDuMois) & " AND " & DateUS(vntDernierJourDuMois)
    Me.Filter = strFiltre
    Me.FilterOn = True
    La fonction « ConvertirMoisEnNumerique() » me permet de passer un mois sous forme de chaine de caractères en argument de la fonction et de récupérer la valeur numérique du mois ("Août" 08).
    La fonction « DateUS() » me permet de passer une date en format FR (jj/mm/aaaa) en argument et de récupérer une date en format US (mm/jj/aaaa).

    Voilà, pas plus compliqué que ça

    Si vous avez encore des questions n'hésitez pas

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/06/2015, 13h58
  2. Réponses: 1
    Dernier message: 04/07/2012, 08h28
  3. afficher les dates d'un mois
    Par nadou89 dans le forum VB.NET
    Réponses: 17
    Dernier message: 01/03/2011, 20h44
  4. Réponses: 6
    Dernier message: 29/09/2008, 09h24
  5. Réponses: 20
    Dernier message: 21/11/2007, 13h42

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