Archives Google         Base de connaissance       Forum Access        Sommaire   
Présentation Access 2007          Articles indispensables de la base de connaissance   
Téléchargement    Librairies    Abonnement   
DTPicker  OfficeSystem.Access 2000 - 2007    
Blog 2000-2003
Blog 2007
Annuaire
Accueil
Remonter

Ce site est hébergé chez




Téléchargez la base en cliquant ici (le fichier zip comprend 2 fichiers: un fichier mdb et un fichier accdb)


Cliquez sur ce logo si vous utilisez Office 12 version 2007.


Cette librairie est disponible avec les extensions développeurs et référencée sous le nom de fichier c:\windows\system32\MSCOMCT2.OCX

Le contrôle DateTimePicker vous permet de fournir un champ de date mis en forme facilitant la sélection de dates. Les utilisateurs peuvent sélectionner une date dans un calendrier déroulant similaire à celui du contrôle MonthView.

Le contrôle DateTimePicker fonctionne selon le mode :

  • Calendrier déroulant, qui permet à l'utilisateur d'afficher un calendrier déroulant dans lequel il peut sélectionner une date.

Formatage de l'aspect du contrôle

Vous pouvez personnaliser le calendrier déroulant du contrôle. Différentes propriétés de couleur telles que CalendarBackColor, CalendarForeColor, CalendarTitleBackColor, CalendarTitleForeColor et CalendarTrailingForeColor vous permettent de créer un modèle de couleurs unique.

Le déplacement dans le contrôle peut s'effectuer à l'aide du clavier ou de la souris. Le calendrier déroulant est doté de deux boutons qui permettent de faire défiler les mois.

Les valeurs de police du contrôle déterminent la largeur et la hauteur du contrôle. L'utilisation de grandes polices entraîne l'agrandissement du contrôle pour recevoir la taille de police choisie. Inversement, vous pouvez choisir une taille de police plus petite pour réduire le contrôle. La taille de police est définie par l'intermédiaire de la propriété Font.

Interface clavier

Le contrôle DtPicker peut être manipulé au clavier. Le tableau suivant décrit les différentes actions que vous pouvez effectuer avec le contrôle au moment de l'exécution.

Liste des différentes actions des touches
Touche Description
FLÈCHE GAUCHE Sélectionne le jour suivant.
FLÈCHE DROITE Sélectionne le jour précédent.
FLÈCHE HAUT Sélectionne le même jour de semaine la semaine précédente.
FLÈCHE BAS Sélectionne le même jour de semaine la semaine suivante.
PAGE PRÉC Fait défiler l'affichage vers les mois antérieurs.
PAGE SUIV Fait défiler l'affichage vers les mois ultérieurs.
CTRL+PAGE PRÉC Fait défiler l'affichage vers l'année précédente.
CTRL+PAGE SUIV Fait défiler l'affichage vers l'année suivante.


 

Navigation dans le contrôle DtPicker

Outre les deux boutons en haut du contrôle, le contrôle DtPicker offre d'autres méthodes pour définir le ou les mois actuellement affichés. Vous pouvez afficher un mois particulier d'une année particulière.

Pour sélectionner un mois particulier

  1. Cliquez sur le nom du mois en haut du calendrier. Un menu contextuel apparaît présentant les noms de tous les mois.
     
  2. Dans le menu, choisissez le nom du mois souhaité.

Le contrôle affiche le mois sélectionné dans l'année courante.

Pour passer directement à une année particulière

  1. Sélectionnez le mois désiré.
     
  2. Cliquez sur le numéro de l'année en haut du calendrier, ce qui le place en mode modification.
     
  3. Cliquez sur les boutons défilement haut/bas pour faire défiler l'année ou tapez l'année dans la zone d'édition.
     
  4. Cliquez à l'extérieur de la zone d'édition ou appuyez sur ENTRÉE lorsque vous avez terminé.

Le contrôle affiche le mois courant dans l'année spécifiée.

 

Commentaires sur l'exemple:

L'exemple téléchargé est composé d'un formulaire et d'un état:

1 formulaire à deux contrôles servant de formulaire de dialogue avec les états
1 état appelant le formulaire de dialogue et affichant les dates sélectionnées

Le formulaire :

Le but de la programmation est de sélectionner une date sur un DtPicker, d'afficher cette date dans un contrôle texte et d'afficher tous les éléments récupérables de cette date ( données encadrées sur le formulaire). Il faudra aussi pour la beauté du geste, modifier l'aspect du contrôle, pouvoir l'agrandir pour les mal-voyants et le diminuer pour ceux qui n'ont plus de place.

Déclarations:

Dim LadateDebut As DTPicker
Dim LadateFin As DTPicker

LaDateDebut permet de définir un objet DtPicker et de faire appel à lui pour modifier toutes les propriétés du contrôle CtlActiveX1
LaDateFin permet de définir un objet DtPicker et de faire appel à lui pour modifier toutes les propriétés du contrôle CtlActiveX2.
 

Procédures:

2 procédures principales:

"Form_Load" pour charger les valeurs d'origine

"Change" pour traiter la date qui vient d'être modifiée.

 

Form_Load:

Le contrôle a été placé sans paramétrage dans le formulaire. Toutes les propriétés seront modifiées dans cette procédure.

Charger LaDateDebut et LaDateFin avec le contrôle DtPicker. les objets ne seront plus redéfinis et pointeront toujours sur le même contrôle.

             Set LadateDebut = Me.CtlActiveX1.Object
             Set LadateFin = Me.CtlActiveX2.Object
 

Charger les propriétés du premier contrôle:

With LadateDebut
   .CustomFormat = "dd/mm/yyyy"
   .CalendarForeColor = RGB(0, 0, 255)
   .CalendarBackColor = RGB(255, 255, 200)
   .CalendarTitleBackColor = RGB(0, 140, 0)
   .CalendarTitleForeColor = RGB(255, 255, 255)
   .CalendarTrailingForeColor = RGB(64, 64, 64)
   .Font.Name = "arial"
   .Font.Size = 10
   .Value = Date
End With

Charger la date de début avec la valeur du premier DtPicker:

                Me.Date_Debut = Me.CtlActiveX1.Value

Charger les propriétés du deuxième contrôle:

With LadateFin
   .CustomFormat = "dd/mm/yyyy"
   .CalendarForeColor = LadateDebut.CalendarForeColor
   .CalendarBackColor = LadateDebut.CalendarBackColor
   .CalendarTitleBackColor = LadateDebut.CalendarTitleBackColor
   .CalendarTitleForeColor = LadateDebut.CalendarTitleForeColor
   .CalendarTrailingForeColor = LadateDebut.CalendarTrailingForeColor
   .Font.Name = LadateDebut.Font.Name
   .Font.Size = LadateDebut.Font.Size
   .Value = LadateDebut.Value
End With

Charger la date de fin avec la valeur du deuxième DtPicker:

                Me.Date_Fin = Me.CtlActiveX2.Value
 

Évènement Change

L'évènement Change ne provoque pas une sortie du contrôle DtPicker. Un click sur un changement de mois ne provoque pas non plus l'évènement change. Seul un click sur une date valide provoque l'évènement Change. La "value" est chargée sur cet évènement et on pourra l'utiliser et la tester.

 Me.Date_Debut = CtlActiveX1.Value
 

Évènement CloseUp

L'évènement CloseUP est déclanché lors d'un click sur une date valide (fermeture du calendrier déroulant).
Il pourra être utilisé en lieu et place de l'évènement Change à la Différence que la nouvelle date sera récupérée lors de la fermeture du calendrier alors qu'avec Change la date sera récupérée au fur et à mesure de la composition de la date.
L'évènement change intervient avant l'évènement closeup et l'utilisation des deux évènements est inutile.

Format des dates

Par défaut, sans la propriété CustomFormat, le format de la date récupérée dans le contrôle DtPicker sera:

dd/MM/yyyy HH:mm:ss

Le contrôle DateTimePicker prend en charge les caractères de format suivants :

Liste des formats date/heures pris en charge
Fragment de chaîne Description
d Numéro du jour (un ou deux chiffres).
dd Numéro du jour (deux chiffres). Les jours du 1 au 9 sont précédés d'un zéro.
ddd Nom du jour abrégé (trois caractères).
dddd Nom du jour complet.
h Heure sur un ou deux chiffres (format 12 heures).
hh Heure sur deux chiffres (format 12 heures). Les heures de 0 à 9 sont précédées d'un zéro.
H Heure sur un ou deux chiffres (format 24 heures).
HH Heure sur deux chiffres (format 24 heures). Les heures de 0 à 9 sont précédées d'un zéro.
m Minutes sur un ou deux chiffres.
mm Minutes sur deux chiffres. Les minutes de 0 à 9 sont précédées d'un zéro.
M Mois sur un ou deux chiffres.
MM Mois sur deux chiffres. Les mois à de 1 à 9 sont précédés d'un zéro.
MMM Nom du mois abrégé (trois caractères).
MMMM Nom du mois en entier.
s Secondes sur un ou deux chiffres.
ss Secondes sur deux chiffres. Les secondes de 0 à 9 sont précédées d'un zéro.
t Abréviation AM/PM sur une lettre (« AM » est affiché sous la forme « A »).
tt Abréviation AM/PM sur deux lettres (« AM » est affiché sous la forme « A »).
X Champ de rappel. Le contrôle utilise les autres caractères de formats valides et demande au propriétaire de remplir la partie « X ». Le propriétaire doit être prêt à réagir à des événements demandant des informations sur le remplissage de ces champs. Plusieurs caractères 'X' peuvent être utilisés en série pour indiquer des champs de rappel uniques.
y Année sur un chiffre (1997 est affiché sous la forme « 7 »).
yy Deux derniers chiffres de l'année (1997 est affiché sous la forme « 97 »).
yyy Année complète (1997 est affiché sous la forme « 1997 »).

Vous pouvez ajouter du texte à la chaîne de format. Par exemple, si vous voulez que le contrôle affiche la date du jour avec le format suivant : « Date du jour : vendredi 25 juillet 1997 Heure : 13:34 », la chaîne CustomFormat sera "'Date du jour :' dddd dd MMMM yyy ' Heure : 'HH:mm". Le texte doit être placé entre apostrophes.

Un des champs de format personnalisés décrits ci-dessus est un champ de rappel. Un champ de rappel vous permet de personnaliser le résultat obtenu en indiquant certaines parties d'une chaîne de format comme champs de rappel. Pour déclarer un champ de rappel, vous devez inclure un ou plusieurs caractères 'X' (code ASCII 88) dans le corps de la chaîne de format. Les champs de rappel sont affichés de gauche à droite.

Lorsqu'une nouvelle date est affichée dans un format qui comprend un ou plusieurs champs de rappel, les événements Format et FormatSize sont déclenchés pour chaque champ de rappel. Vous pouvez utiliser l'événement Format pour indiquer une chaîne de réponse personnalisée, et l'événement FormatSize pour déterminer l'espace nécessaire à l'affichage de la chaîne. Cela vous permet d'avoir un contrôle total sur l'affichage d'un champ de rappel.

Chaque suite de X a une signification donnée. Par exemple, X peut signifier « er » (pour « 1er ») et « XX » peut signifier « premier ». Ces champs ne mettent pas en forme le texte de l'utilisateur, mais ils mettent la date en forme.

Supposons par exemple que vous vouliez afficher le nom du mois en Français et en Espagnol, comme ci-dessous :

29 Juillet (Julio)

Pour ce faire, créez une chaîne de format semblable à celle-ci :

d MMMM XXXX

Lors du traitement des événements Format et FormatSize, vous pouvez vérifier quel champ de rappel est appelé en comparant la chaîne de format de saisie avec « XXXX ». Si les chaînes correspondent, une chaîne de sortie « ( Julio) » peut être créée et sa longueur fournie.

Le nombre de X n'est utilisé par une application que pour déterminer le texte à fournir pour un champ de rappel. Lors du traitement de l'événement FormatSize, la taille du texte peut être calculée par programmation.

Vous pouvez créer des champs de rappel uniques en répétant le caractère "X". Ainsi, la chaîne de format 'XXddddMMMdd', 'yyyXXX" contient deux champs de rappel. Les champs de rappel sont traités comme des champs valides, et l'application doit donc être prête à traiter des événements Key.