Salut,
Tout d'abord merci a' Curt sans qui je n'aurais pas su que l'ActivX Calendar
existait.
Question: comment faire pour n'utiliser qu'un seul calendrier pour plusieurs
champs text?
J'ai bien reussi a' tout faire fonctionner pour un champ text mais
franchement ca m'ennuie de creer un calendrier pour chaque champs "date" que
je pourrais avoir sur un meme formulaire (le probleme c'est le retour de la
date dans le bon champ et de remettre le focus sur le champ de depart). A
savoir, mon calendrier est visibleúlse avant le clic sur un des champs et
je le remet dans cette etat apres le click sur le calendrier.
Je vous demande pardon d'avance si cette question a deja ete posee.
Merci,
Salut,
Tout d'abord merci a' Curt sans qui je n'aurais pas su que l'ActivX Calendar
existait.
Question: comment faire pour n'utiliser qu'un seul calendrier pour plusieurs
champs text?
J'ai bien reussi a' tout faire fonctionner pour un champ text mais
franchement ca m'ennuie de creer un calendrier pour chaque champs "date" que
je pourrais avoir sur un meme formulaire (le probleme c'est le retour de la
date dans le bon champ et de remettre le focus sur le champ de depart). A
savoir, mon calendrier est visibleúlse avant le clic sur un des champs et
je le remet dans cette etat apres le click sur le calendrier.
Je vous demande pardon d'avance si cette question a deja ete posee.
Merci,
Salut,
Tout d'abord merci a' Curt sans qui je n'aurais pas su que l'ActivX Calendar
existait.
Question: comment faire pour n'utiliser qu'un seul calendrier pour plusieurs
champs text?
J'ai bien reussi a' tout faire fonctionner pour un champ text mais
franchement ca m'ennuie de creer un calendrier pour chaque champs "date" que
je pourrais avoir sur un meme formulaire (le probleme c'est le retour de la
date dans le bon champ et de remettre le focus sur le champ de depart). A
savoir, mon calendrier est visibleúlse avant le clic sur un des champs et
je le remet dans cette etat apres le click sur le calendrier.
Je vous demande pardon d'avance si cette question a deja ete posee.
Merci,
Bonsoir,
Voir de ce côté : http://officesystemaccess.seneque.net/ex_calendrier1.htmSalut,
Tout d'abord merci a' Curt sans qui je n'aurais pas su que l'ActivX Calendar
existait.
Question: comment faire pour n'utiliser qu'un seul calendrier pour plusieurs
champs text?
J'ai bien reussi a' tout faire fonctionner pour un champ text mais
franchement ca m'ennuie de creer un calendrier pour chaque champs "date" que
je pourrais avoir sur un meme formulaire (le probleme c'est le retour de la
date dans le bon champ et de remettre le focus sur le champ de depart). A
savoir, mon calendrier est visibleúlse avant le clic sur un des champs et
je le remet dans cette etat apres le click sur le calendrier.
Je vous demande pardon d'avance si cette question a deja ete posee.
Merci,
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonsoir,
Voir de ce côté : http://officesystemaccess.seneque.net/ex_calendrier1.htm
Salut,
Tout d'abord merci a' Curt sans qui je n'aurais pas su que l'ActivX Calendar
existait.
Question: comment faire pour n'utiliser qu'un seul calendrier pour plusieurs
champs text?
J'ai bien reussi a' tout faire fonctionner pour un champ text mais
franchement ca m'ennuie de creer un calendrier pour chaque champs "date" que
je pourrais avoir sur un meme formulaire (le probleme c'est le retour de la
date dans le bon champ et de remettre le focus sur le champ de depart). A
savoir, mon calendrier est visibleúlse avant le clic sur un des champs et
je le remet dans cette etat apres le click sur le calendrier.
Je vous demande pardon d'avance si cette question a deja ete posee.
Merci,
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonsoir,
Voir de ce côté : http://officesystemaccess.seneque.net/ex_calendrier1.htmSalut,
Tout d'abord merci a' Curt sans qui je n'aurais pas su que l'ActivX Calendar
existait.
Question: comment faire pour n'utiliser qu'un seul calendrier pour plusieurs
champs text?
J'ai bien reussi a' tout faire fonctionner pour un champ text mais
franchement ca m'ennuie de creer un calendrier pour chaque champs "date" que
je pourrais avoir sur un meme formulaire (le probleme c'est le retour de la
date dans le bon champ et de remettre le focus sur le champ de depart). A
savoir, mon calendrier est visibleúlse avant le clic sur un des champs et
je le remet dans cette etat apres le click sur le calendrier.
Je vous demande pardon d'avance si cette question a deja ete posee.
Merci,
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonsoir,
Voir de ce côté : http://officesystemaccess.seneque.net/ex_ca lendrier1.htm
Bonsoir,
Voir de ce côté : http://officesystemaccess.seneque.net/ex_ca lendrier1.htm
Bonsoir,
Voir de ce côté : http://officesystemaccess.seneque.net/ex_ca lendrier1.htm
Eric a écrit, le 21/11/2007 19:41 :Bonsoir,
Voir de ce côté : http://officesystemaccess.seneque.net/ex_calendrier1.htm
Bonjour,
Ah ouaip, pas mal.
Si on ne veut pas que les noms du formulaire et du contrôle soient
visibles, on peut aussi les stocker dans des étiquettes créées
spécialement à cet effet, avec l'attribut Visible = False.
A noter : le site de Raymond présente le cas où le contrôle avec une
date se trouve dans un formulaire principal.
Si le contrôle est dans un sous formulaire, il va falloir passer tout le
chemin, et penser à le traiter au retour.
'==================== >
'Dans un module :
Public Sub SelectDate(Control As Control, _
Optional DateDefaut As Variant)
Dim Obj As Object
If IsMissing(DateDefaut) Then
If IsDate(Control) Then
DateDefaut = Control
End If
End If
If IsMissing(DateDefaut) Or IsNull(DateDefaut) _
Or Not (IsDate(DateDefaut)) Then
DateDefaut = Now()
End If
DoCmd.OpenForm "frmDate", OpenArgs:ÚteDefaut
Set Obj = Control
While Not ExisteFormulaire(Obj.Name)
Set Obj = Obj.Parent
While Not TypeOf Obj Is Form
Set Obj = Obj.Parent
Wend
Forms("frmDate").lblNomForm.Caption = _
Obj.Name + "." + Forms("frmDate").lblNomForm.Caption
Wend
If Len(Forms("frmDate").lblNomForm.Caption) > 4 Then
' pour éviter que l'étiquette soit vide
'elle contient un point de suspension au départ
Forms("frmDate").lblNomForm.Caption = _
Left$(Forms("frmDate").lblNomForm.Caption, _
Len(Forms("frmDate").lblNomForm.Caption) - 4)
'Je retire le point de suspension
End If
Forms("frmDate").lblNomControle.Caption = Control.Name
End Sub
'============================ >
On a passé, ou pas, une date en argument au formulaire date : il faut la
récupérer au chargement.
'============================ > 'Dans frmDate
Private Sub Form_Load()
If OpenArgs = "" Then
Me.Calendar0 = Now()
Else
If IsDate(OpenArgs) Then
Me.Calendar0 = OpenArgs
End If
End If
Me.txtdate = Me.Calendar0
End Sub
'============================= >
Lors de la validation de la sélection, c'est là que la syntaxe de
concaténation va être traitée pour retrouver le formulaire ou
sous-formulaire concerné :
'============================= >
Private Sub cmdOK_Click()
'MsgBox Me.Calendar0.Value
Dim Obj As Object
Dim N As Integer
TabForm = Split(Forms("frmDate").lblNomForm.Caption, ".")
' la chaîne contenant le chemin est séparée dans un tableau
' selon les points
Set Obj = Forms(TabForm(0))
If UBound(TabForm) > 0 Then
' Si UBound(TabForm) = 0 ça signifie qu'il n'y a pas de point,
' le contrôle est dans un formulaire principal
For N = 1 To UBound(TabForm)
Set Obj = Obj.Controls(TabForm(N)).Form
'Tant qu'on trouve un élément on descend d'un niveau
'vers les sous-formulaires
Next
End If
'ça y est, Obj est le formulaire (ou sous-formulaire)
'dans lequel se trouve le contrôle
Obj.Controls(lblNomControle.Caption) = Calendar0.Value
' Le contrôle reçoit la date sélectionnée
DoCmd.Close acForm, Me.Name
End Sub
'============================= >
Et ... Je crois bien que ça y est.
Plus qu'à appeler le tout :
Private Sub txtDateLivraisonClient_DblClick(Cancel As Integer)
SelectDate txtDateLivraisonClient
End Sub
Si on veut on encadre d'une certaine couleur les contrôles concernés,
que l'utilisateur sache qu'il peut ouvrir le calendrier en
double-cliquant dessus.
Pour voir ceux qui suivent : j'ai traité deux fois la valeur par défaut.
Comme j'ai mis la même valeur, il n'y a pas de casse.
Eric a écrit, le 21/11/2007 19:41 :
Bonsoir,
Voir de ce côté : http://officesystemaccess.seneque.net/ex_calendrier1.htm
Bonjour,
Ah ouaip, pas mal.
Si on ne veut pas que les noms du formulaire et du contrôle soient
visibles, on peut aussi les stocker dans des étiquettes créées
spécialement à cet effet, avec l'attribut Visible = False.
A noter : le site de Raymond présente le cas où le contrôle avec une
date se trouve dans un formulaire principal.
Si le contrôle est dans un sous formulaire, il va falloir passer tout le
chemin, et penser à le traiter au retour.
'==================== >
'Dans un module :
Public Sub SelectDate(Control As Control, _
Optional DateDefaut As Variant)
Dim Obj As Object
If IsMissing(DateDefaut) Then
If IsDate(Control) Then
DateDefaut = Control
End If
End If
If IsMissing(DateDefaut) Or IsNull(DateDefaut) _
Or Not (IsDate(DateDefaut)) Then
DateDefaut = Now()
End If
DoCmd.OpenForm "frmDate", OpenArgs:ÚteDefaut
Set Obj = Control
While Not ExisteFormulaire(Obj.Name)
Set Obj = Obj.Parent
While Not TypeOf Obj Is Form
Set Obj = Obj.Parent
Wend
Forms("frmDate").lblNomForm.Caption = _
Obj.Name + "." + Forms("frmDate").lblNomForm.Caption
Wend
If Len(Forms("frmDate").lblNomForm.Caption) > 4 Then
' pour éviter que l'étiquette soit vide
'elle contient un point de suspension au départ
Forms("frmDate").lblNomForm.Caption = _
Left$(Forms("frmDate").lblNomForm.Caption, _
Len(Forms("frmDate").lblNomForm.Caption) - 4)
'Je retire le point de suspension
End If
Forms("frmDate").lblNomControle.Caption = Control.Name
End Sub
'============================ >
On a passé, ou pas, une date en argument au formulaire date : il faut la
récupérer au chargement.
'============================ > 'Dans frmDate
Private Sub Form_Load()
If OpenArgs = "" Then
Me.Calendar0 = Now()
Else
If IsDate(OpenArgs) Then
Me.Calendar0 = OpenArgs
End If
End If
Me.txtdate = Me.Calendar0
End Sub
'============================= >
Lors de la validation de la sélection, c'est là que la syntaxe de
concaténation va être traitée pour retrouver le formulaire ou
sous-formulaire concerné :
'============================= >
Private Sub cmdOK_Click()
'MsgBox Me.Calendar0.Value
Dim Obj As Object
Dim N As Integer
TabForm = Split(Forms("frmDate").lblNomForm.Caption, ".")
' la chaîne contenant le chemin est séparée dans un tableau
' selon les points
Set Obj = Forms(TabForm(0))
If UBound(TabForm) > 0 Then
' Si UBound(TabForm) = 0 ça signifie qu'il n'y a pas de point,
' le contrôle est dans un formulaire principal
For N = 1 To UBound(TabForm)
Set Obj = Obj.Controls(TabForm(N)).Form
'Tant qu'on trouve un élément on descend d'un niveau
'vers les sous-formulaires
Next
End If
'ça y est, Obj est le formulaire (ou sous-formulaire)
'dans lequel se trouve le contrôle
Obj.Controls(lblNomControle.Caption) = Calendar0.Value
' Le contrôle reçoit la date sélectionnée
DoCmd.Close acForm, Me.Name
End Sub
'============================= >
Et ... Je crois bien que ça y est.
Plus qu'à appeler le tout :
Private Sub txtDateLivraisonClient_DblClick(Cancel As Integer)
SelectDate txtDateLivraisonClient
End Sub
Si on veut on encadre d'une certaine couleur les contrôles concernés,
que l'utilisateur sache qu'il peut ouvrir le calendrier en
double-cliquant dessus.
Pour voir ceux qui suivent : j'ai traité deux fois la valeur par défaut.
Comme j'ai mis la même valeur, il n'y a pas de casse.
Eric a écrit, le 21/11/2007 19:41 :Bonsoir,
Voir de ce côté : http://officesystemaccess.seneque.net/ex_calendrier1.htm
Bonjour,
Ah ouaip, pas mal.
Si on ne veut pas que les noms du formulaire et du contrôle soient
visibles, on peut aussi les stocker dans des étiquettes créées
spécialement à cet effet, avec l'attribut Visible = False.
A noter : le site de Raymond présente le cas où le contrôle avec une
date se trouve dans un formulaire principal.
Si le contrôle est dans un sous formulaire, il va falloir passer tout le
chemin, et penser à le traiter au retour.
'==================== >
'Dans un module :
Public Sub SelectDate(Control As Control, _
Optional DateDefaut As Variant)
Dim Obj As Object
If IsMissing(DateDefaut) Then
If IsDate(Control) Then
DateDefaut = Control
End If
End If
If IsMissing(DateDefaut) Or IsNull(DateDefaut) _
Or Not (IsDate(DateDefaut)) Then
DateDefaut = Now()
End If
DoCmd.OpenForm "frmDate", OpenArgs:ÚteDefaut
Set Obj = Control
While Not ExisteFormulaire(Obj.Name)
Set Obj = Obj.Parent
While Not TypeOf Obj Is Form
Set Obj = Obj.Parent
Wend
Forms("frmDate").lblNomForm.Caption = _
Obj.Name + "." + Forms("frmDate").lblNomForm.Caption
Wend
If Len(Forms("frmDate").lblNomForm.Caption) > 4 Then
' pour éviter que l'étiquette soit vide
'elle contient un point de suspension au départ
Forms("frmDate").lblNomForm.Caption = _
Left$(Forms("frmDate").lblNomForm.Caption, _
Len(Forms("frmDate").lblNomForm.Caption) - 4)
'Je retire le point de suspension
End If
Forms("frmDate").lblNomControle.Caption = Control.Name
End Sub
'============================ >
On a passé, ou pas, une date en argument au formulaire date : il faut la
récupérer au chargement.
'============================ > 'Dans frmDate
Private Sub Form_Load()
If OpenArgs = "" Then
Me.Calendar0 = Now()
Else
If IsDate(OpenArgs) Then
Me.Calendar0 = OpenArgs
End If
End If
Me.txtdate = Me.Calendar0
End Sub
'============================= >
Lors de la validation de la sélection, c'est là que la syntaxe de
concaténation va être traitée pour retrouver le formulaire ou
sous-formulaire concerné :
'============================= >
Private Sub cmdOK_Click()
'MsgBox Me.Calendar0.Value
Dim Obj As Object
Dim N As Integer
TabForm = Split(Forms("frmDate").lblNomForm.Caption, ".")
' la chaîne contenant le chemin est séparée dans un tableau
' selon les points
Set Obj = Forms(TabForm(0))
If UBound(TabForm) > 0 Then
' Si UBound(TabForm) = 0 ça signifie qu'il n'y a pas de point,
' le contrôle est dans un formulaire principal
For N = 1 To UBound(TabForm)
Set Obj = Obj.Controls(TabForm(N)).Form
'Tant qu'on trouve un élément on descend d'un niveau
'vers les sous-formulaires
Next
End If
'ça y est, Obj est le formulaire (ou sous-formulaire)
'dans lequel se trouve le contrôle
Obj.Controls(lblNomControle.Caption) = Calendar0.Value
' Le contrôle reçoit la date sélectionnée
DoCmd.Close acForm, Me.Name
End Sub
'============================= >
Et ... Je crois bien que ça y est.
Plus qu'à appeler le tout :
Private Sub txtDateLivraisonClient_DblClick(Cancel As Integer)
SelectDate txtDateLivraisonClient
End Sub
Si on veut on encadre d'une certaine couleur les contrôles concernés,
que l'utilisateur sache qu'il peut ouvrir le calendrier en
double-cliquant dessus.
Pour voir ceux qui suivent : j'ai traité deux fois la valeur par défaut.
Comme j'ai mis la même valeur, il n'y a pas de casse.
Toujours sur le meme sujet, je n'arrive pas a' ouvrir le calendrier ou' je
veux dans la fenetre, existe t'il une methode pour positionner un formu laire
sur la fenetre?
Toujours sur le meme sujet, je n'arrive pas a' ouvrir le calendrier ou' je
veux dans la fenetre, existe t'il une methode pour positionner un formu laire
sur la fenetre?
Toujours sur le meme sujet, je n'arrive pas a' ouvrir le calendrier ou' je
veux dans la fenetre, existe t'il une methode pour positionner un formu laire
sur la fenetre?
yakakose a écrit, le 24/11/2007 13:37 :Toujours sur le meme sujet, je n'arrive pas a' ouvrir le calendrier ou' je
veux dans la fenetre, existe t'il une methode pour positionner un formulaire
sur la fenetre?
Tu veux dire, le formulaire de calendrier où tu veux sur l'écran ?
Ah ouaip, ça fastoche.
Vite fait avant d'aller manger, je te suggère un coup d'œil à l'aide de
DoCmd.MoveSize
yakakose a écrit, le 24/11/2007 13:37 :
Toujours sur le meme sujet, je n'arrive pas a' ouvrir le calendrier ou' je
veux dans la fenetre, existe t'il une methode pour positionner un formulaire
sur la fenetre?
Tu veux dire, le formulaire de calendrier où tu veux sur l'écran ?
Ah ouaip, ça fastoche.
Vite fait avant d'aller manger, je te suggère un coup d'œil à l'aide de
DoCmd.MoveSize
yakakose a écrit, le 24/11/2007 13:37 :Toujours sur le meme sujet, je n'arrive pas a' ouvrir le calendrier ou' je
veux dans la fenetre, existe t'il une methode pour positionner un formulaire
sur la fenetre?
Tu veux dire, le formulaire de calendrier où tu veux sur l'écran ?
Ah ouaip, ça fastoche.
Vite fait avant d'aller manger, je te suggère un coup d'œil à l'aide de
DoCmd.MoveSize
Oui et c'est exactement ce que je cherchais.
Bon appetit,
Oui et c'est exactement ce que je cherchais.
Bon appetit,
Oui et c'est exactement ce que je cherchais.
Bon appetit,