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 :

[Formulaire] Utiliser le contrôle calendrier dans plusieurs formulaires [Débutant(e)]


Sujet :

IHM

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 24
    Points : 10
    Points
    10
    Par défaut [Formulaire] Utiliser le contrôle calendrier dans plusieurs formulaires
    Bonsoir,

    Je suis toujours sur mon contrôl calendrier.
    Est-il possible d'affecter l'ouverture du formulaire qui contient le calendrier sur plusieurs formulaires différents (sa oui) mais, en faisant en sorte que le calendrier mette la date à jour dans le formulaire qui est actif.
    Ou, peut-être plus simplement dans celui qui a commandé son ouverture, ou quelque chose comme ca.

    Merci

  2. #2
    Membre confirmé Avatar de timoth
    Homme Profil pro
    Responsable Outils Digitaux
    Inscrit en
    Octobre 2005
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Responsable Outils Digitaux

    Informations forums :
    Inscription : Octobre 2005
    Messages : 479
    Points : 474
    Points
    474
    Par défaut
    Salut,

    Je me suis posé la meme question que toi, mais trop tard.
    Je ne maitrisais pas trop ACCESS et j'ai créé un controle Calendrier pour chaque champ date que j'utilise, ce qui fait une dizaine. Stupide!

    A refaire, chaque bouton qui appelle le controle envoie egalement au formulaire qui contient le calendrier, une valeur particuliere ("date_formulaire1", par exemple)
    Cette valeur, tu la stockes dans un champ caché (visible=false) a coté du calendrier.

    Au moment de renvoyer la date, tu consultes quel est cette valeur particuliere que tu as stocké avec ton calendrier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Select case Valeur_particuliere.value
       Case "date_formulaire1"
    MaBase.Form_Formulaire1.monChampDate = MonCalendrier.Value
       Case "date_formulaire2"
    etc....
    Il y a peut etre une méthode plus efficace, mais je ne la connais pas.

    Bon courage
    puis et puis et encore . Sinon sans oublier et

  3. #3
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Salut,

    Si ton calendrier est un Form indépendant tu peux passer sur la commande de son ouverture le nom du Form par OpenArgs.

    Exemple :

    Formulaire1 possède un contrôle Texte, sur double clic dans Test le Formulaire calendrier s'ouvre et quand je clic sur un date je veux que celle-ci se mette dans Texte de Formulaire1.

    Sur le Formulaire1 dans l'événement double clic de Texte tu commande l'ouverture du Fomulaire calendrien en passant dans OpenArgs le nom du Form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Texte_DblClick(Cancel As Integer)
     
        DoCmd.OpenForm "frmCalendrier", , , , , , Me.Name
     
    End Sub
    ensuite dans le Formulaire Calendrier à l'ouverture tu récupère l'openArgs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Compare Database
    Public strFrm As String
     
    Private Sub Form_Open(Cancel As Integer)
     
        Me.Calendar.Value = Now()
        strFrm = OpenArgs
     
    End Sub
    Sur click du calendrier tu envoi sa valeur dans le Formulaire1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Calendar_Click()
     
        Forms(strFrm)!Texte.Value = Calendar
        DoCmd.Close
     
    End Sub
    Dolphy

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 24
    Points : 10
    Points
    10
    Par défaut
    Bonsoir,

    Je teste tout cela ce soir, ou du moins je tente de le faire sans me tromper ce qui n'est pas sûr...
    Encore bravo pour le forum, il n'est pas simple de trouver de l'aide sur Access.
    De plus il est complet avec les discussions, les cours, les sources et ce que je n'ai pas encore vu.
    Et merci pour vos réponses.

  5. #5
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Salut,
    juste pour dire qu'à ma connaissance l'évènement Sur Click n'est pas géré pour les Calendars...
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  6. #6
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Salut Faw,

    Citation Envoyé par Faw
    Salut,
    juste pour dire qu'à ma connaissance l'évènement Sur Click n'est pas géré pour les Calendars...
    C'est vrai que l'on ne voit pas l'événement Sur Click dans l'onglet Événements des Propriétés d'un contrôl Calendar mais celui-ci écrit directement dans le module du formulaire fonctionne à merveille.

    Dolphy

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 24
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    C'est exact, le click sur le calendar ainsi que la solution dans sa globalité, fonctionne bien, je te remercie .
    Il suffit de donner le même nom dans chaque formulaire, au champ "texte" et cela fonctionne trés bien.
    Pour le moment je l'ai testé sur un exemple vite fait, pas pollué par autre chose, avec les tables exemples d'Access.
    Je tente de le mettre en place sur ma base avec mon switchboard et tout mon bazar.

    Merci à tous

  8. #8
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Salut,

    Un autre moyen aussi simple est de mettre dans le contrôl actif de ton premier Form, par défaut c'est celui où tu as cliquer dedans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Calendar_Click()
     
        Forms(strFrm).ActiveControl.Value = Calendar
        DoCmd.Close
     
    End Sub
    Dolphy

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 24
    Points : 10
    Points
    10
    Par défaut
    Bonsoir,

    Oui, super idée.
    Je maitrise pas trop mal le logiciel, par contre le code, je suis une bille.
    Cela viendra petit à petit je suppose.
    Pour le reste, ta solution fonctionne très bien, même avec le menu général, c'est même plus simple qu'avant.
    Plus besoin de guillemets ou autre fioritures du même genre.
    Pour comprendre, est-ce que ça vient de la déclaration de variable puclic ?
    Je met ta dernière proposition en application rapidement.

    Merci


    Merci

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 24
    Points : 10
    Points
    10
    Par défaut
    Re,

    Ca ne fonctionne pas .
    Où j'ai pas compris un truc (ce qui est fort possible !)
    Je remplace simplement le nom de mon champ par "activecontrol" dans la ligne de code que tu cites ?
    Où il faut rajouter quelque chose ailleur ?

    Merci

  11. #11
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Bsr,

    le dernier code mis remplace le premier.

    Pour que ceci fonctionne il faut que ton premier Formulaire reste ouvert.

    Peux-tu être plus précis sue ce qui ne fonctionne pas, as-tu une erreur ?

    Dolphy

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 24
    Points : 10
    Points
    10
    Par défaut
    Bonsoir,

    J'ai effectivement remplacé une ligne par une autre.
    Soit dans l'évènement click du calendrier je remplace le nom de mon champ qui dans ton exemple est "texte" par "activecontrol", c'est la seule différence entre les deux lignes.
    Je lance mon formulaire, j'ouvre le calendrier je double clic sur la date et là... c'est le drame :

    Erreur d'execution '2465'
    Impossible de trouver le champ 'activecontrol' auquel il est fait référence dans votre expression.

    Je pensais que 'activecontrol' appelé le formulaire actif et nom un champ, du coup je n'ai pas renomé mon champ.
    Je me suis dit que le renomer, revenait au même que ce que j'avais fait précédement, que ça ne devait pas être ce que tu voulais dire.
    J'ai donc tenté d'ajouter des guillemets ou des parenthèses pour lui expliquer que c'était un formulaire et nom un champ.
    Dans les deux cas j'ai "erreur de syntaxe"

    Merci

  13. #13
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Re,
    autant pour moi Dolphy, j'ai trouvé l'événement dans vba (colonne de droite).
    Chamoix, le code fontionne à merveille avec les deux syntaxes.
    Montre ton code stp, ça sera plus parlant...
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 24
    Points : 10
    Points
    10
    Par défaut
    Bonjour à tous,

    Oui, tu as raison, je dois me tromper quelque part, mais où ?
    Sur mon 1er formulaire, champ de recup de la date, j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub DateCréation_DblClick(Cancel As Integer)
     
        DoCmd.OpenForm "Calendrier", , , , , , Me.Name
     
    End Sub
    Sur le formulaire calendrier, sur l'évènement ouverture :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Form_Open(Cancel As Integer)
     
        Me.Calendrier.Value = Now()
        strFrm = OpenArgs
     
    End Sub
    Puis sur le control, sur le click :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Option Compare Database
    Public strFrm As String
     
    Private Sub Calendrier_Click()
     
        Forms(strFrm)!DateCréation.Value = Calendrier
        [DateSélectionnée] = [Calendrier].Value
        'DoCmd.Close
     
    End Sub
    J'ai ajouté la recup de la date système et supprimé la fermeture pour fermer à l'aide d'un bouton.
    C'est là que je modifie la ligne centrale pour avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Option Compare Database
    Public strFrm As String
     
    Private Sub Calendrier_Click()
     
        Forms(strFrm)!ActiveControl.value = calendrier
        [DateSélectionnée] = [Calendrier].Value
        'DoCmd.Close
     
    End Sub
    Merci

  15. #15
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Salut,

    Citation Envoyé par chamoix
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms(strFrm)!ActiveControl.value = calendrier
    Si tu met le nom du champ la synthaxe est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms(strFrm)!MonControl.value = calendrier
    Si tu veux mettre dans le control actif du form voici la synthaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms(strFrm).ActiveControl.value = calendrier
    Ici il y a un point avant ActiveControl et pas un point d'exclamation.

    Dolphy

  16. #16
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Pourquoi ne pas utiliser ActiveForm pour connaitre le formulaire courant. Si le calendrier est ouvert en mode modal, aucun autre formulaire n'a pu être ouvert par l'utilisateur avant sa fermeture. Dés lors le formulaire courant redevient le même qu'avant l'ouverture du calendrier.

  17. #17
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Salut,

    Je ne vois pas où tu veux en venir, le formulaire actif reste le dernier à être ouvert, comment connaître le form qui a appelé celui où se trouve le calendrier avec ActiveForm ?

    Dolphy

  18. #18
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub CtlActiveX1_DblClick()
    Dim Temp As String
    ' Temp stocke la valeur du contrôle calendrier quand l'usager doubleclique sur une date
    Temp = Me.ActiveControl.Value
    ' Ferme le formulaire de dialogue
    DoCmd.Close
    ' Assigne la valeur du contrôle calendrier au contrôle précédemment actif du
    ' formulaire de saisie
    Screen.ActiveControl.Value = Temp
    End Sub
    où ctlActiveX1 est mon contrôle calendrier

  19. #19
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    re,

    Je ne le voyais pas comme cela. C'est plus clair maintenant

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 24
    Points : 10
    Points
    10
    Par défaut
    Re,

    Oups, je t'avais dit que j'étais pas douée en vb
    Vive le copier/coller ça évite ce genre de bétise.
    Je le test et je te dit, mais je pense que si je l'écrit correctement ça devrait fonctionner.

    Merci encore

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 26/01/2009, 14h27
  2. Réponses: 5
    Dernier message: 23/01/2009, 13h19
  3. Réponses: 3
    Dernier message: 27/02/2008, 22h58
  4. calendrier dans un formulaire
    Par pit88 dans le forum IHM
    Réponses: 2
    Dernier message: 13/06/2007, 22h35
  5. [VBA-O]Calendrier dans un formulaire outlook
    Par imhotep_zr7s dans le forum VBA Outlook
    Réponses: 4
    Dernier message: 09/02/2006, 21h25

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