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 :

Utilisation d'un calendrier (Contrôle ActiveX) [À faire]


Sujet :

IHM

  1. #1
    Futur Membre du Club

    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Utilisation d'un calendrier (Contrôle ActiveX)
    Bonjour,

    Je suis nouvel utilisateur du forum et voici mes interrogations :

    1- Dans mes champs DateDébut et DateFin, j'aimerais que le calendrier du Contrôle ActiveX apparaîsse sur un clic, que je puisse choisir ma date et qu'ensuite la date s'inscrive dans mon champ Date/Heure et que le calendrier disparaîsse... Il me semble avoir déjà vu ça quelque part alors ça doit bien se faire mais comment ??? J'ai le même problème avec les champs HeureDébut et HeureFin. Je ne sais pas quel est le Contrôle dans ActiveX pour les heures... Pour arriver dans un genre d'agenda ou autre...

    2- Et maintenant, j'ai une liste déroulante pour la fréquence des services, i.e. À la semaine, Aux 3 semaines, Au mois, etc... Je saisi mon plan de service dans l'horaire de l'employé, en lui indiquant le client, les services, la date de début et les heures mais ce service pour ce client peut être demandé à la semaine ou au mois. J'aimerais qu'en indiquant Au mois par exemple, l'horaire de l'employé soit affecté à tous les mois, sans que je n'ai a ressaisir les infos et ce, jusqu'à ce que j'aille inscrire une date de fin...Est-ce possible qqechose comme ça et si oui, comment le programmer ????

    Je vous remercie à l'avance pour votre aide et bonne journée !

  2. #2
    xp
    xp est déconnecté
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Février 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 23
    Points : 32
    Points
    32
    Par défaut
    Bonjour,
    c'est marrant ta question, je faisais ca ce matin... !!!!
    J'ai créé un formulaire calendrier, qui ne contient qu'un calendrier, un bouton valider et un bouton annuler.
    Quand je l'ouvre, je lui passe en arguments le nom du formulaire et du contrôle qui l'appelle.
    Quand l'utilisateur valide, la date du calendrier est copiée dans mon contrôle appelant.

    Pour le 2, ce que tu veux faire doit être possible, mais il manque des infos : un service choisi pour un mois s'applique-t-il tous les jours?, tous les jours ouvrés?.
    Comment est organisée ta table?
    ...
    XP

  3. #3
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut Re: Utilisation d'un calendrier (Contrôle ActiveX)
    Citation Envoyé par MultiClic
    1- Dans mes champs DateDébut et DateFin, j'aimerais que le calendrier du Contrôle ActiveX apparaîsse sur un clic, que je puisse choisir ma date et qu'ensuite la date s'inscrive dans mon champ Date/Heure et que le calendrier disparaîsse... Il me semble avoir déjà vu ça quelque part alors ça doit bien se faire mais comment ???
    Tu es en rain de décrire le DateTimePicker, de Microsoft. Il est inclus dans Visual Basic 6.0, mais pas dans Access (en tout cas, pas Access 2000).
    Si tu as VB 6, tu peux le coller dans un formulaire Access.
    Sinon, tu peux en acheter une variété dans les boutiques de contrôles ActiveX (sos developers...)
    Sinon, le truc d'XP m'a l'air super Quelques lignes de code...
    Citation Envoyé par MultiClic
    J'ai le même problème avec les champs HeureDébut et HeureFin. Je ne sais pas quel est le Contrôle dans ActiveX pour les heures... Pour arriver dans un genre d'agenda ou autre...
    Je n'ai jamais vu d'équivalent ? Une horloge déroulante ??? Le plus simple, c'est un champ texte, je pense.
    Citation Envoyé par MultiClic
    2- Et maintenant, j'ai une liste déroulante pour la fréquence des services, i.e. À la semaine, Aux 3 semaines, Au mois, etc... Je saisi mon plan de service dans l'horaire de l'employé, en lui indiquant le client, les services, la date de début et les heures mais ce service pour ce client peut être demandé à la semaine ou au mois. J'aimerais qu'en indiquant Au mois par exemple, l'horaire de l'employé soit affecté à tous les mois, sans que je n'ai a ressaisir les infos et ce, jusqu'à ce que j'aille inscrire une date de fin...Est-ce possible qqechose comme ça et si oui, comment le programmer ????
    Là, ça se complique (merci à tous de couper vos phrases, d'aller à la ligne, etc. C'est pas facile à lire tout ça. Si je tape ma réponse comme toi, je pense que tu ne pigeras pas grand chose ? )
    Bon, si je comprends bien, tu veux faire l'équivalent d'un rendez-vous périodique dans Outlook :
    - tu saisis l'heure de début et de fin, la date de début et la date de fin,
    - en fonction de la périodicité (par semaine, mois...) tu vas créer autant de rendez-vous que nécessaire...
    1ère solution assez évidente : tu utilises Outlook, à partir d'Access, en OLE. L'agenda sera on ne peut + facile à afficher...
    2ème, dans Access : tu analyses clairement ta structure de tables :
    - 1 table des services périodiques (1 enregistrement / Client / Employé)
    - 1 table des RDVs (1 enregistrement / RDVs),
    etc.
    Pour un service donné, tu ajoutes autant de RDVs que nécessaire...
    Genre :
    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
     
    DateRDVs = Me![DateDebut]
    With RecordsetRDVs
        Do While DateRDVs <= Me!&#91;DateFin&#93;
            Select Case Me!&#91;Periodicite&#93;
            Case "semaine"
                DateRDVs = DateRDVs + 7
            Case "Mois"
               'etc...
            End Select
            .AddNew
            !&#91;IdEmploye&#93; = Me!&#91;IdEmploye&#93;
            !&#91;IdClient&#93; = Me!&#91;IdClient&#93;
            !&#91;DebutRDVs&#93; = DateRDVs + HeureDebut
            !&#91;FinRDVs&#93; = DateRDVs + HeureFin
            'etc....
            .Update
        Loop
    End With
    Note juste que, si tu as des contrôles séparés pour date et heure sur ton formulaire (+ pratique), tu peux stocker la date et l'heure (début ou fin d'un RDVs) dans un seul champ date.
    Après restera le problème d'affichage. Essaie de faire simple, genre un état par employé pour lister ts ses RDVs (N'essaie surtout pas de reproduire l'agenda d'Outlook ! )
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  4. #4
    Futur Membre du Club

    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Pour le 2, ce que tu veux faire doit être possible, mais il manque des infos : un service choisi pour un mois s'applique-t-il tous les jours?, tous les jours ouvrés?.
    Comment est organisée ta table?
    ...
    Bonjour,

    Justement il est là mon pb. Je ne sais pas comment organiser mes tables pour faire ça... Je t'explique un peu...

    C'est une bd pour organiser des horaires de travail pour une entreprise qui fait une offre de service à domicile pour les personnes agées.

    J'ai plusieurs employés, qui offrent plusieurs services à plusieurs clients. Dans l'horaire de travail de l'employé, je lui indique une date de début, une journée, une heure de début et une heure de fin.

    Si j'ai indiqué le jeudi 29 avril 2004 de 10:00 à 11:00, il faudrait que tous les jeudi suivants du calendrier soient affectés à cet employé de 10:00 à 11:00 pour ce même service à ce même client...

    je ne tiens pas compte des jours ouvrables, mes employés doivent être disponible en tout temps!

    Voilà! J'espère que c'est plus clair ainsi.

    Merci à l'avance !

  5. #5
    xp
    xp est déconnecté
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Février 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 23
    Points : 32
    Points
    32
    Par défaut Re: Utilisation d'un calendrier (Contrôle ActiveX)
    Bonsoir :
    Citation Envoyé par Papy Turbo
    Sinon, le truc d'XP m'a l'air super Quelques lignes de code...
    Merci, tu trouveras en fin de post.
    Citation Envoyé par Papy Turbo
    Tu es en rain de décrire le DateTimePicker, de Microsoft. Il est inclus dans Visual Basic 6.0, mais pas dans Access (en tout cas, pas Access 2000).
    Si tu as VB 6, tu peux le coller dans un formulaire Access.
    Ben, j'utilise Calendar control 8.0, mais il ne prend pas en comte les heures.
    Pour le code (libre de droits ):
    Ici, sur double clic dans la zone de texte, j'ouvre mon formulaire Calendrier en passant comme argument le nom du form et le nom du contrôle à qui je veux associer une date (comme ca, si j'ai plusieurs contrôles de ce type - et c'est le cas -, je fais toujours la même commande, et je n'ai qu'un contrôle activeX)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub txtDateDébut_DblClick&#40;Cancel As Integer&#41;
        DoCmd.OpenForm "frmcalendrier", , , , , , Me.Name & "," & Me.ActiveControl.Name
    End Sub
    le formulaire contient mon contrôle activeX, un bouton valider, un bouton fermer. (Il a une mise en forme sans bordures, pour faire plus beau...)
    Sur ouverture de ce formulaire j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Open&#40;Cancel As Integer&#41;
        Me.axCalendrier.Value = Format&#40;Now&#40;&#41;, "dd/mm/yyyy"&#41;
    End Sub
    Manière de commencer avec la date du jour!
    Le contrôle ActiveX marche tout seul (Of course) (tu sélectionnes ta date).
    Le bouton valider permet de fermer le formulaire calendrier et met à jour le contrôle qui a appelé, comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub btnValider_Click&#40;&#41;
        Dim frmName, ctrlName As String
        frmName = Split&#40;Me.OpenArgs, ","&#41;&#40;0&#41;
        ctrlName = Split&#40;Me.OpenArgs, ","&#41;&#40;1&#41;
        Forms&#40;frmName&#41;.Controls&#40;ctrlName&#41; = axCalendrier.Value 'ici, je met à jour
        DoCmd.Close
    End Sub
    Notez que la procédure aurait pu comporter que deux lignes....

    Bon, en écrivant, je vois un post apparaître :
    par rapport au point 2, c'est possible, mais j'y reviendrai plus tard, je n'ai plus de temps...
    Désolé
    XP

  6. #6
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Citation Envoyé par MultiClic
    J'ai plusieurs employés, qui offrent plusieurs services à plusieurs clients. Dans l'horaire de travail de l'employé, je lui indique une date de début, une journée, une heure de début et une heure de fin.
    Revois la réponse de Papy Turbo au dessus de ton dernier post : il faut aussi une date de fin , à savoir "Jusqu'à quand veux-tu ajouter des interventions ?". Il faut que tu stockes chaque intervention dans une table, pour pouvoir ensuite les afficher, les lister dans un "agenda par employé", etc.
    Cette solution permettra, si accord entre employé et "client" (personne assistée), de modifier individuellement chaque RDVs ponctuel dans la série... (Ex. : Jeudi prochain : 11h30 -> 12h30 au lieu du 11h00 -> 12h00 habituel parce que le Papy sera ??? (occupé) ??? jusqu'à 11h30 !)
    Combien de temps :
    - pendant 1 an ? (dans le contrôle [DateFin], tu peux mettre une valeur par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = DateSerial&#40;Year&#40;Now&#41;+1, Month&#40;Now&#41;, Day&#40;Now&#41;&#41;
    par ex.
    - on pourra toujours indiquer une autre date à la place de cette valeur (avec ton calendrier ) ...
    - Lorsqu'on modifiera la [DateFin], tu ajouteras / supprimeras les RDVs manquants/en trop...
    Citation Envoyé par MultiClic
    Si j'ai indiqué le jeudi 29 avril 2004 de 10:00 à 11:00, il faudrait que tous les jeudi suivants du calendrier soient affectés à cet employé de 10:00 à 11:00 pour ce même service à ce même client...

    je ne tiens pas compte des jours ouvrables, mes employés doivent être disponible en tout temps!
    Est-ce que la réponse au dessus te convient ?
    - 2 tables
    - code pour ajouter toutes les interventions (alias "RDVs" dans le code) = créer un RDVs pour chaque jeudi, depuis la date de début jusqu'à celle de fin.
    Est-ce qu'elle n'est pas claire ?
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  7. #7
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut Correction du post d'hier
    J'ai dit une c...rie hier à propos de la saisie de l'heure avec un dateTimePicker : comme son nom l'indique, il permet de saisir la date et/ou l'heure.
    Du coup, 2/3 tests qui donnent ça :
    Images de 3 contrôles DateTimePicker (de VB6), avec formats différents, à comparer avec une proposition de DatePicker pour Access, ci-dessous

    Ceci dit,
    - si tu as Visual Basic 6.0, c'est sûrement le plus simple,
    - si tu ne l'as pas : merci XP du code (gratuit ) : c'est un Truc de DatePicker à publier...
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  8. #8
    Futur Membre du Club

    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Merci!
    Merci à vous deux !

    Je crois bien que mon pb est réglé pour le moment.

    Je vais tenter de faire fonctionner tout ça.

    Bonne journée !

  9. #9
    Futur Membre du Club

    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Codes pour ActiveX Calendrier 9.0
    Bonjour,

    Papy Turbo a écrit:
    Sinon, le truc d'XP m'a l'air super Quelques lignes de code...
    1-J'ai bien tenté le code suivant:
    Code:
    Private Sub Form_Open(Cancel As Integer)
    Me.axCalendrier.Value = Format(Now(), "dd/mm/yyyy")
    End Sub
    Mais ça me donne toujours le message suivant:
    Erreur de compilation: Membre de méthode ou de données introuvable.

    J'ai la version 9.0 et non 8.0 du calendrier dans le contrôle ActiveX, est-ce possible que ce soit la cause du problème ou bien autre chose ???


    2- Dans le formulaire du calendrier, je dois avoir un bouton valider.
    Quand je prend un bouton d'option, quel serait le code pour que le système valide la date que j'ai choisie ?

    Merci à l'avance et bonne journée !

  10. #10
    xp
    xp est déconnecté
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Février 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 23
    Points : 32
    Points
    32
    Par défaut
    Bonjour,
    pour ton pbm 1, cela vient peut-être de la version, ou de la "langue" : c'est à dire le format de date : au lieu de "dd/mm/yyyy", essaie avec "mm/dd/yyyy"

    Pour le 2 : si par "le système valide ma date" tu entends : tu recopie ta date dans la zone de texte, quelque soit le contrôle permettant de valider, le code donné est le même.
    Si tu entends autre chose, alors il te faut préciser...
    XP

  11. #11
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut Re: Codes pour ActiveX Calendrier 9.0
    Citation Envoyé par MultiClic
    Erreur de compilation: Membre de méthode ou de données introuvable.
    Lorsque s'affiche l'erreur de compilation, l'éditeur VBA sélectionne le "membre de méthode ou de données" qui est introuvable.
    Quel est le mot sélectionné ?
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  12. #12
    Futur Membre du Club

    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Quel est le mot sélectionné ?
    C'est la partie suivante: axCalendrier qui est sélectionnée

    Merci encore pour votre aide !

  13. #13
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    S'il s'agit bien d'un contrôle Calendrier d'Access, quand tu tapes le point entre Me.axCalendrier et Value , tu dois voir Value dans la liste des propriétés qui se déroule ?

    Si c'est bien le cas, alors, désolé, c'est le message d'erreur qui est à côté de la plaque. Ca m'étonne, mais ça arrive. Essaye cela, plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Form_Open&#40;Cancel As Integer&#41; 
        Me.axCalendrier.Value = Now&#40;&#41;
    End Sub
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  14. #14
    Futur Membre du Club

    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Merci ! Enfin ! Voilà, mon calendrier, ça fonctionne. Merci !

    J'ai cherché des infos pour le transfert de Outlook 2000 vers ma bd dans Access afin de gérer mes RDVs suite au message suivant:

    1ère solution assez évidente : tu utilises Outlook, à partir d'Access, en OLE. L'agenda sera on ne peut + facile à afficher...
    Je ne voudrais pas transférer toute la base de Outlook mais la partie du "calendrier" seulement.

    Dans ce calendrier, il y a le bouton "périodicité" qui correspond exactement à ce dont j'ai besoin.
    (Le pire c'est que les fameuses dates de début et dates de fin sont incluses dans le système de RDVs de Outlook!!!)

    Pourriez-vous encore m'aider SVP! Merci !

  15. #15
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut Utiliser le Contrôle Calendrier comme un "DatePicker&am
    Citation Envoyé par MultiClic
    J'ai cherché des infos pour le transfert de Outlook 2000 vers ma bd dans Access afin de gérer mes RDVs
    [...]
    Pourriez-vous encore m'aider SVP! Merci !
    Bien sur, mais c'est une autre question qu'il faut poser séparément.
    En gros, je pense que tu peux te passer de tranférer tous les RDVs d'Outlook dans ta base, puisqu'ils sont stockés dans le calendrier de chacun. (Créer un synchronisateur de RDVs entre ta base et celle d'Outlook est un projet de grande envergure !!! )
    Par contre, tu vas pouvoir proposer un formulaire qui, en fonction des données de ta base, va générer, dans le Calendrier d'Outlook, des Rendez Vous périodiques...

    Pour en revenir au calendrier, l'idée de XP m'a telement plu que j'ai "perdu" 2 heures pour en faire un "Calendrier déroulant", copie aussi conforme que possible du DateTimePicker de VB 6.0.

    Image du "DatePicker pour Access", à comparer à celle du DateTimePicker de VB 6, ci-dessus

    J'ai mis exprès une flèche bleue,qu'on voit bien qu'il ne s'agit pas d'une liste déroulante...

    Si cela intéresse XP, toi, ou quelqu'un d'autre qui n'a pas VB 6, ne serait-ce que pour participer à une phase de bêta test, répondez à ce thread et je viendrai (rédiger et) coller les détails (formulaires, code, APIs Windows...) ici.
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  16. #16
    Futur Membre du Club

    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Bonjour à vous,

    Pour ce qui est de votre calendrier, j'ai réussi finalement à avoir à peu près ce que vous avez en utilisant le calendrier dans la liste ActiveX "Contrôle Calendrier 9.0".

    Je n'ai pas à mettre de flèche par contre, je l'ai saisi en assignant un clic dans le contrôle du champ. Ça donne ceci:

    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
    Private Sub DateDébut_Click&#40;&#41;
    DoCmd.OpenForm "calendrier"
    End Sub
     
    Private Sub DateFin_Click&#40;&#41;
    DoCmd.OpenForm "calendrier1"
    End Sub
     
    Private Sub CtlActiveX0_AfterUpdate&#40;&#41;
    Form_HoraireEmployé.DateDébut = Me.CtlActiveX0.Value
    DoCmd.Close
    End Sub
     
    Private Sub CtlActiveX0_Updated&#40;Code As Integer&#41;
     
    End Sub
     
    Private Sub CtlActiveX0_AfterUpdate&#40;&#41;
    Form_HoraireEmployé.DateFin = Me.CtlActiveX0.Value
    DoCmd.Close
    End Sub
     
    Private Sub CtlActiveX0_Updated&#40;Code As Integer&#41;
     
    End Sub
    Mon pb semble être celui-ci : Je ne peux utiliser la date du jour, celle qui est déjà enfoncée !!! Elle ne s'affiche pas dans mon contrôle du champ !!!

    Ainsi le calendrier est identique à ce que vous avez, sans la flèche bleue.

    Maintenant, j'ai réalisé qu'il me serait impossible d'utiliser en entier le calendrier d'Outlook.

    Je tente maintenant de trouver les codes nécessaires pour faire sensiblement le même système de périodicité qu'il y a dans Outlook. Il correspond vraiment à la façon dont je voudrais gérer mes horaires d'employés.

    Si vous avez une idée, je la prendrais c'est certain et si je trouve, je vous donnerez les détails qui pourront peut-être être utile à qq'un d'autre.

    Merci à vous et bonne journée !

  17. #17
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Citation Envoyé par MultiClic
    Pour ce qui est de votre calendrier, j'ai réussi finalement à avoir à peu près ce que vous avez en utilisant le calendrier dans la liste ActiveX "Contrôle Calendrier 9.0".
    Bravo. C'est le même que j'utilise, avec quelques API Windows, pour le faire apparaître juste sous la zone de texte...

    Citation Envoyé par MultiClic
    Je n'ai pas à mettre de flèche par contre, je l'ai saisi en assignant un clic dans le contrôle du champ. Ça donne ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub DateDébut_Click&#40;&#41;
    DoCmd.OpenForm "calendrier"
    End Sub
     
    Private Sub DateFin_Click&#40;&#41;
    DoCmd.OpenForm "calendrier1"
    End Sub
    Attention, les utilisateurs ne pourront pas cliquer dans la date pour la modifier manuellement ! Essaye un double clic ?
    Citation Envoyé par MultiClic
    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
     
    Private Sub CtlActiveX0_AfterUpdate&#40;&#41;
    Form_HoraireEmployé.DateDébut = Me.CtlActiveX0.Value
    DoCmd.Close
    End Sub
     
    Private Sub CtlActiveX0_Updated&#40;Code As Integer&#41;
     
    End Sub
     
    Private Sub CtlActiveX0_AfterUpdate&#40;&#41;
    Form_HoraireEmployé.DateFin = Me.CtlActiveX0.Value
    DoCmd.Close
    End Sub
     
    Private Sub CtlActiveX0_Updated&#40;Code As Integer&#41;
     
    End Sub
    Mon pb semble être celui-ci : Je ne peux utiliser la date du jour, celle qui est déjà enfoncée !!! Elle ne s'affiche pas dans mon contrôle du champ !!!
    Ainsi le calendrier est identique à ce que vous avez, sans la flèche bleue.
    1/- Dommage que tu utilises 2 contrôles calendrier, sur 2 formulaires différents. J'ai rendu le mien réutilisable :
    - en lui passant la date en cours dans la zone de texte (s'il y en a déjà une), pour qu'il s'affiche avec la même,
    - le calendrier déclenche un évènement que le formulaire "appelant" détecte, quand tu cliques sur une date,
    - je te conseille d'ajouter la touche Escape, si l'utilisateur veut fermer le calendrier sans rien modifier à la date (annuler).

    2/- Ton pb est normal : le calendrier ne provoque aucun évènement mise à jour (_AfterUpdate), si tu cliques sur la même date que tu as mis en l'ouvrant (par défaut, c'est la date du jour - voir le point 1/ ci dessus). Il faut que tu mettes la date du jour comme valeur par défaut, dans ta zone de texte : le calendrier ne servira que pour changer cette date.
    Citation Envoyé par MultiClic
    Maintenant, j'ai réalisé qu'il me serait impossible d'utiliser en entier le calendrier d'Outlook.

    Je tente maintenant de trouver les codes nécessaires pour faire sensiblement le même système de périodicité qu'il y a dans Outlook. Il correspond vraiment à la façon dont je voudrais gérer mes horaires d'employés.

    Si vous avez une idée, je la prendrais c'est certain et si je trouve, je vous donnerez les détails qui pourront peut-être être utile à qq'un d'autre.
    Il y a, dans ma 1ère réponse, page 1, le code DAO pour ajouter un RDVs hebdomadaire, depuis DateDebut jusqu'à DateFin. À toi d'ajouter d'autres périodicités, si nécessaire...
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  18. #18
    Futur Membre du Club

    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    ReBonjour,

    Vous avez entièrement raison ici:
    Dommage que tu utilises 2 contrôles calendrier, sur 2 formulaires différents
    Je me suis bien rendue compte, en faisant des tests que ça ne pourrait fonctionner ainsi.

    Je suis donc revenue aux codes d'xp reçus auparavant:

    Code:
    Private Sub txtDateDébut_DblClick(Cancel As Integer)
    DoCmd.OpenForm "frmcalendrier", , , , , , Me.Name & "," & Me.ActiveControl.Name
    End Sub
    Mais là, je n'ai pas le "Name" après le . de Me.ActiveControl ???

    Et dans mon Private Sub, il n'est pas inscrit "txt" devant DateDébut...??

  19. #19
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Que le Name n'apparaisse pas est normal, ActiveControl n'a qu'une liste limitée de propriétés standard.
    Ca doit marcher quand même.
    Par contre, que tu nous poses une question à propos du nom de ton contrôle, faut pas charrier : tu réfléchis... et tu mets ce qu'il faut.
    Développement Office, support technique, assistance, sur place (Loire atlantique, Vendée, Maine et Loire) ou à distance.

  20. #20
    xp
    xp est déconnecté
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Février 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 23
    Points : 32
    Points
    32
    Par défaut
    Salut,
    je suis content de voir que ma proposition est développée.
    Citation Envoyé par Papy Turbo
    Si cela intéresse XP, toi, ou quelqu'un d'autre qui n'a pas VB 6, ne serait-ce que pour participer à une phase de bêta test, répondez à ce thread et je viendrai (rédiger et) coller les détails (formulaires, code, APIs Windows...) ici.
    Je suis vraiment curieux de voir, le calendrier déroule, ou apparaît comme un formulaire. Tu parles des APIs, y-en-a-t-il (ça en fait des - ) de vraiment nécessaires?
    XP

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [WD-2003] Mise en place et utilisation d'un contrôle ActiveX
    Par Lorenzole+bo dans le forum VBA Word
    Réponses: 0
    Dernier message: 05/12/2010, 19h49
  2. Le contrôle ActiveX Calendrier
    Par alainGL dans le forum IHM
    Réponses: 2
    Dernier message: 10/03/2008, 16h40
  3. Réponses: 2
    Dernier message: 21/04/2007, 15h59
  4. [VB.NET]Utilisation d'un contrôle ActiveX
    Par Benzeghiba dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/11/2006, 10h03
  5. Réponses: 1
    Dernier message: 21/02/2006, 18h13

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