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 :

Code total pour un "datechooser"


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 166
    Par défaut Code total pour un "datechooser"
    Code total pour un "datechooser" lisant/écrivant la valeur du contrôle cible.
    À partir de l'article Access : Modules de classes de Michel Blavin


    Formulaire calendrier:
    Définir un contrôle calendrier et des boutons Ok et Annuler. On peut définir les propriétés "Fen indépendante" et "Fen modale" à Oui pour obtenir une fenêtre de type popup.
    Le contrôle (MSCAL.Calendar.7) que j'ai trouvé n'a pas d'évènement onDlbClick (d'ou le bouton OK obligatoire)

    Module de frmCalendrier:
    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
    Option Explicit
    Private m_prpCtlCible As Control
     
    Private Sub Form_Load()
        Me.ctlCalendrier.Value = Now
    End Sub
     
    Property Set Cible(ctl As Control)
        Set m_prpCtlCible = ctl
     
        If (Not IsNull(m_prpCtlCible.Value)) Then _
            Me.ctlCalendrier.Value = CDate(m_prpCtlCible.Value)
    End Property
     
    Private Sub cmdAnnuler_Click()
        DoCmd.Close
    End Sub
     
    Private Sub cmdOK_Click()
    On Error GoTo ErrManager
     
        'Affecter la date choisie au contrôle cible
        m_prpCtlCible.Value = Me.ctlCalendrier.Value
     
    Sortie:
        DoCmd.Close
    Exit Sub
     
    ' Gestionnaire d'erreurs
    ErrManager:
        Select Case Err.Number
            Case 91
                MsgBox "Pas de contrôle cible!"
            Case Else
                MsgBox "L'erreur suivante s'est produite : " & vbCrLf & Err.Description, vbCritical, _
                        "Erreur N° " & Err.Number
        End Select
        Resume Sortie
    End Sub
    Formulaires ayant des dates:
    -Définir un champ de texte et un bouton.
    Sur click (du bouton) = "= btCalendrier_Click([txtDate])"
    txtDate est le nom du contrôle où frmCalendrier écrit la date choisie.

    Module standard :
    Définir la fonction btCalendrier_Click dans un module standard pour qu'elle soit accessible pour n'importe quel formulaire ayant des dates. Il faut définir une function et non pas un Sub car on ne peut pas assigner un Sub à un évènement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'Ouvre le formulaire calendrier
    Public Function btCalendrier_Click(txtCible As Control)
        DoCmd.OpenForm "frmCalendrier"
        Set Form_frmCalendrier.Cible = txtCible
    End Function

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 166
    Par défaut
    Dsl, je pensais répondre à mon post plus bas, pas faire un nouveau sujet.

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

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