OVH Cloud OVH Cloud

Saisie de dates avec un calendrier de type MSCAL

3 réponses
Avatar
Patrick_67
Bonjour à toutes et à tous,



Pour faciliter la saisie de quelques dates dispersées à la fois dans des
formulaires et des sous-formulaires, je me suis inspiré d'un exemple du site
de Raymond Seneque : cf le lien suivant :
http://officesystem.access.free.fr/ex_calendrier1.htm



L'objectif est le suivant : lorsque l'utilisateur double-clique sur un champ
de formulaire de type « date », une fenêtre de type « Popup » doit s'afficher
avec un contrôle de type "calendrier" (cf MSCAL) ; l'utilisateur sélectionne
ensuite un jour et au moment de fermer la fenêtre de type « Popup », la date
correspondant au jour préalablement sélectionné doit s'inscrire dans le
champ initial de type date du formulaire ou sous-formulaire.



L'exemple fourni sur le site de Raymond Seneque fonctionne bien quand le
champ date se trouve dans un formulaire mais ne fonctionne pas lorsqu'il se
trouve dans un sous-formulaire.



Voici par exemple l'instruction qui plante lorsque « Formulaire » correspond
à un sous-formulaire :

Forms(Formulaire)(Contrôle) = Me.Calendrier

avec la variable « Formulaire » qui correspond au nom du formulaire (ou du
sous-formulaire) initial et la variable « Contrôle » qui correspond au nom
de champ de type date sur lequel s'est fait le double-clic initial



Deux solutions sont possibles :

1. soit faire en sorte que la solution proposée par Raymond fonctionne
également pour les dates se trouvant dans des sous-formulaires

2. soit trouver une autre approche.



Merci d'avance de vos idées.



Patrick

3 réponses

Avatar
MG
Pour un sous-formulaire faut mettre :

Forms(Formulaire).form(Sous-formulaire)(Contrôle) = Me.Calendrier

où sous-formulaire est le nom du sous-formulaire...


"Patrick_67" a écrit dans le message de news:

Bonjour à toutes et à tous,



Pour faciliter la saisie de quelques dates dispersées à la fois dans des
formulaires et des sous-formulaires, je me suis inspiré d'un exemple du
site de Raymond Seneque : cf le lien suivant :
http://officesystem.access.free.fr/ex_calendrier1.htm



L'objectif est le suivant : lorsque l'utilisateur double-clique sur un
champ de formulaire de type « date », une fenêtre de type « Popup » doit
s'afficher avec un contrôle de type "calendrier" (cf MSCAL) ;
l'utilisateur sélectionne ensuite un jour et au moment de fermer la
fenêtre de type « Popup », la date correspondant au jour préalablement
sélectionné doit s'inscrire dans le champ initial de type date du
formulaire ou sous-formulaire.



L'exemple fourni sur le site de Raymond Seneque fonctionne bien quand le
champ date se trouve dans un formulaire mais ne fonctionne pas lorsqu'il
se trouve dans un sous-formulaire.



Voici par exemple l'instruction qui plante lorsque « Formulaire »
correspond à un sous-formulaire :

Forms(Formulaire)(Contrôle) = Me.Calendrier

avec la variable « Formulaire » qui correspond au nom du formulaire (ou du
sous-formulaire) initial et la variable « Contrôle » qui correspond au nom
de champ de type date sur lequel s'est fait le double-clic initial



Deux solutions sont possibles :

1. soit faire en sorte que la solution proposée par Raymond fonctionne
également pour les dates se trouvant dans des sous-formulaires

2. soit trouver une autre approche.



Merci d'avance de vos idées.



Patrick




Avatar
Patrick_67
Merci MG pour la réponse.

Du coup, une question complémentaire : existe-t-il un moyen simple de savoir
si le champ en cours (ici de type "date") est inclus dans un formulaire ou
dans un sous-formulaire?

Ceci afin de pouvoir utiliser la syntaxe adéquate selon les 2 cas...

Merci pour toute info complémentaire...

"MG" a écrit dans le message de news:

Pour un sous-formulaire faut mettre :

Forms(Formulaire).form(Sous-formulaire)(Contrôle) = Me.Calendrier

où sous-formulaire est le nom du sous-formulaire...


"Patrick_67" a écrit dans le message de news:

Bonjour à toutes et à tous,



Pour faciliter la saisie de quelques dates dispersées à la fois dans des
formulaires et des sous-formulaires, je me suis inspiré d'un exemple du
site de Raymond Seneque : cf le lien suivant :
http://officesystem.access.free.fr/ex_calendrier1.htm



L'objectif est le suivant : lorsque l'utilisateur double-clique sur un
champ de formulaire de type « date », une fenêtre de type « Popup » doit
s'afficher avec un contrôle de type "calendrier" (cf MSCAL) ;
l'utilisateur sélectionne ensuite un jour et au moment de fermer la
fenêtre de type « Popup », la date correspondant au jour préalablement
sélectionné doit s'inscrire dans le champ initial de type date du
formulaire ou sous-formulaire.



L'exemple fourni sur le site de Raymond Seneque fonctionne bien quand le
champ date se trouve dans un formulaire mais ne fonctionne pas lorsqu'il
se trouve dans un sous-formulaire.



Voici par exemple l'instruction qui plante lorsque « Formulaire »
correspond à un sous-formulaire :

Forms(Formulaire)(Contrôle) = Me.Calendrier

avec la variable « Formulaire » qui correspond au nom du formulaire (ou
du sous-formulaire) initial et la variable « Contrôle » qui correspond au
nom de champ de type date sur lequel s'est fait le double-clic initial



Deux solutions sont possibles :

1. soit faire en sorte que la solution proposée par Raymond fonctionne
également pour les dates se trouvant dans des sous-formulaires

2. soit trouver une autre approche.



Merci d'avance de vos idées.



Patrick








Avatar
MG
j'vois pas très bien comment, mais en double cliquant sur le champ, on doit
peut sans problème passer un paramètre "OpernArgs" au formulaire MSCAL sous
la forme "NomFormulaire,Nomsousformulaire ou vide,nomChamp"
Private Sub Madate_DblClick(Cancel As Integer)
DoCmd.OpenForm "calendrier",,,,,"NomFormulaire,Nomsousformulaire ou
vide,nomChamp" Forms("calendrier").Caption = Me.Name & "!" &
Me.Madate.Name
End SubUne fois dans MSCAL, on retrouve l'argument dans Me.openargsFaut un
peu se casser la tête pour l'analyser mais il n'y a pas de gros problème...

sser un paramètre donnant
"Patrick_67" a écrit dans le message de news:

Merci MG pour la réponse.

Du coup, une question complémentaire : existe-t-il un moyen simple de
savoir si le champ en cours (ici de type "date") est inclus dans un
formulaire ou dans un sous-formulaire?

Ceci afin de pouvoir utiliser la syntaxe adéquate selon les 2 cas...

Merci pour toute info complémentaire...

"MG" a écrit dans le message de news:

Pour un sous-formulaire faut mettre :

Forms(Formulaire).form(Sous-formulaire)(Contrôle) = Me.Calendrier

où sous-formulaire est le nom du sous-formulaire...


"Patrick_67" a écrit dans le message de news:

Bonjour à toutes et à tous,



Pour faciliter la saisie de quelques dates dispersées à la fois dans des
formulaires et des sous-formulaires, je me suis inspiré d'un exemple du
site de Raymond Seneque : cf le lien suivant :
http://officesystem.access.free.fr/ex_calendrier1.htm



L'objectif est le suivant : lorsque l'utilisateur double-clique sur un
champ de formulaire de type « date », une fenêtre de type « Popup » doit
s'afficher avec un contrôle de type "calendrier" (cf MSCAL) ;
l'utilisateur sélectionne ensuite un jour et au moment de fermer la
fenêtre de type « Popup », la date correspondant au jour préalablement
sélectionné doit s'inscrire dans le champ initial de type date du
formulaire ou sous-formulaire.



L'exemple fourni sur le site de Raymond Seneque fonctionne bien quand le
champ date se trouve dans un formulaire mais ne fonctionne pas lorsqu'il
se trouve dans un sous-formulaire.



Voici par exemple l'instruction qui plante lorsque « Formulaire »
correspond à un sous-formulaire :

Forms(Formulaire)(Contrôle) = Me.Calendrier

avec la variable « Formulaire » qui correspond au nom du formulaire (ou
du sous-formulaire) initial et la variable « Contrôle » qui correspond
au nom de champ de type date sur lequel s'est fait le double-clic
initial



Deux solutions sont possibles :

1. soit faire en sorte que la solution proposée par Raymond fonctionne
également pour les dates se trouvant dans des sous-formulaires

2. soit trouver une autre approche.



Merci d'avance de vos idées.



Patrick