Dans un formulaire, j'ai un sous-formulaire, dans lequel 3 champs date ouvre
sur clic le même contrôle ActiveX calendrier, que j'ai inséré sur un
formulaire. J'ai eu beau parcourir l'aide d'Access, je n'ai toujours pas
trouvé comment renvoyer la date sélectionnée du calendrier, dans le champs
correspondant. En plus le mot calendrier ou calendar dans la recherche sur le
forum Access ne renvoi rien du tout.
Quelqu'un aurait-il une petite idée.
Merci d'avance.
zOrg2net
7OuNet
Le dicton du jour: La peine prévue pour la polygamie, c'est d'avoir
plusieurs belles mères.
Désolé de reprendre le fil si tard, mais l'administrateur système m'a viré de ma machine pour cause de maintenance. Mon problème était donc toujours existant avant que je lise ton post. Ceci dit, BINGO !!! ;o))) Ta solution fonctionne parfaitement et cela me soulage d'un grand poids. Moult mercis à toi et à ze titi. Je vais prendre quelques instants pour décripter ton code et voir pourquoi l'autre ne marche pas. @+
zOrg2net 7OuNet Le dicton du jour: Il n'y a pas de fumé sans indiens!!
hello, as tu resolu ton pb, sinon j'ai ça: Soit un formulaire Form1 contenant un sous-formulaire Form2 et un formulaire calendrier avec un controle nommé Calendar0. Pour pouvoir utiliser le calendrier aussi bien avec le formulaire Form1 incluant le sous-form Form2 et avec Form2 utilisé seul, le code pourrait être le suivant: 1-Sur l'évènement Double-clic du champ de type Date présent (ici DateFacture) dans form2 (mis en sous-formulaire ou autonome):
Private Sub DateFacture_DblClick(Cancel As Integer) On Error GoTo Err_Calendrier ' gestion d'erreur simplifiée DoCmd.OpenForm "calendrier" Forms("calendrier").Caption = Me.Parent.Name & _ "!" & Me.Name & "!" & Me.DateFacture.Name Exit Sub Err_Calendrier: If Err.Number = 2452 Then Forms("calendrier").Caption = Me.Name & _ "!" & Me.DateFacture.Name Else Forms("calendrier").Caption = Me.Parent.Name & _ "!" & Me.Name & "!" & Me.DateFacture.Name End If Resume Next End Sub
2-Sur l'évènement clic du contrôle Calendar0 du formulaire Calendrier:
Private Sub Calendar0_Click() Dim frm As String, frmPere As String Dim ctl As String Dim sep1 As Integer, sep2 As Integer sep1 = InStr(1, Me.Caption, "!") sep2 = InStrRev(Me.Caption, "!") If sep1 <> sep2 Then frmPere = Mid(Me.Caption, 1, sep1 - 1) frm = Mid(Me.Caption, sep1 + 1, sep2 - sep1 - 1) ctl = Mid(Me.Caption, sep2 + 1) Forms(frmPere)(frm)(ctl) = Me.Calendar0 Else frm = Mid(Me.Caption, 1, sep1 - 1) ctl = Mid(Me.Caption, sep1 + 1) Forms(frm)(ctl) = Me.Calendar0 End If DoCmd.Close End Sub
rem pour ouvrir le calendrier à la date du jour Private Sub Form_Load() Me.Calendar0.Value = Date End Sub
(PS: En partant du principe que Form2 ne contient pas, à son tour, un sous-formulaire avec un champ de type Date) Eric connait bien....
Bonjour koalavert,
Désolé de reprendre le fil si tard, mais l'administrateur système m'a viré
de ma machine pour cause de maintenance. Mon problème était donc toujours
existant avant que je lise ton post.
Ceci dit, BINGO !!! ;o))) Ta solution fonctionne parfaitement et cela me
soulage d'un grand poids. Moult mercis à toi et à ze titi. Je vais prendre
quelques instants pour décripter ton code et voir pourquoi l'autre ne marche
pas. @+
zOrg2net
7OuNet
Le dicton du jour: Il n'y a pas de fumé sans indiens!!
hello,
as tu resolu ton pb, sinon j'ai ça:
Soit un formulaire Form1 contenant un sous-formulaire Form2 et un
formulaire calendrier avec un controle nommé Calendar0.
Pour pouvoir utiliser le calendrier aussi bien avec le formulaire
Form1
incluant le sous-form Form2 et avec Form2 utilisé seul, le code
pourrait
être le suivant:
1-Sur l'évènement Double-clic du champ de type Date présent (ici
DateFacture) dans form2 (mis en sous-formulaire ou autonome):
Private Sub DateFacture_DblClick(Cancel As Integer)
On Error GoTo Err_Calendrier ' gestion d'erreur simplifiée
DoCmd.OpenForm "calendrier"
Forms("calendrier").Caption = Me.Parent.Name & _
"!" & Me.Name & "!" & Me.DateFacture.Name
Exit Sub
Err_Calendrier:
If Err.Number = 2452 Then
Forms("calendrier").Caption = Me.Name & _
"!" & Me.DateFacture.Name
Else
Forms("calendrier").Caption = Me.Parent.Name & _
"!" & Me.Name & "!" & Me.DateFacture.Name
End If
Resume Next
End Sub
2-Sur l'évènement clic du contrôle Calendar0 du formulaire Calendrier:
Private Sub Calendar0_Click()
Dim frm As String, frmPere As String
Dim ctl As String
Dim sep1 As Integer, sep2 As Integer
sep1 = InStr(1, Me.Caption, "!")
sep2 = InStrRev(Me.Caption, "!")
If sep1 <> sep2 Then
frmPere = Mid(Me.Caption, 1, sep1 - 1)
frm = Mid(Me.Caption, sep1 + 1, sep2 - sep1 - 1)
ctl = Mid(Me.Caption, sep2 + 1)
Forms(frmPere)(frm)(ctl) = Me.Calendar0
Else
frm = Mid(Me.Caption, 1, sep1 - 1)
ctl = Mid(Me.Caption, sep1 + 1)
Forms(frm)(ctl) = Me.Calendar0
End If
DoCmd.Close
End Sub
rem pour ouvrir le calendrier à la date du jour
Private Sub Form_Load()
Me.Calendar0.Value = Date
End Sub
(PS: En partant du principe que Form2 ne contient pas, à son tour, un
sous-formulaire avec un champ de type Date)
Eric connait bien....
Désolé de reprendre le fil si tard, mais l'administrateur système m'a viré de ma machine pour cause de maintenance. Mon problème était donc toujours existant avant que je lise ton post. Ceci dit, BINGO !!! ;o))) Ta solution fonctionne parfaitement et cela me soulage d'un grand poids. Moult mercis à toi et à ze titi. Je vais prendre quelques instants pour décripter ton code et voir pourquoi l'autre ne marche pas. @+
zOrg2net 7OuNet Le dicton du jour: Il n'y a pas de fumé sans indiens!!
hello, as tu resolu ton pb, sinon j'ai ça: Soit un formulaire Form1 contenant un sous-formulaire Form2 et un formulaire calendrier avec un controle nommé Calendar0. Pour pouvoir utiliser le calendrier aussi bien avec le formulaire Form1 incluant le sous-form Form2 et avec Form2 utilisé seul, le code pourrait être le suivant: 1-Sur l'évènement Double-clic du champ de type Date présent (ici DateFacture) dans form2 (mis en sous-formulaire ou autonome):
Private Sub DateFacture_DblClick(Cancel As Integer) On Error GoTo Err_Calendrier ' gestion d'erreur simplifiée DoCmd.OpenForm "calendrier" Forms("calendrier").Caption = Me.Parent.Name & _ "!" & Me.Name & "!" & Me.DateFacture.Name Exit Sub Err_Calendrier: If Err.Number = 2452 Then Forms("calendrier").Caption = Me.Name & _ "!" & Me.DateFacture.Name Else Forms("calendrier").Caption = Me.Parent.Name & _ "!" & Me.Name & "!" & Me.DateFacture.Name End If Resume Next End Sub
2-Sur l'évènement clic du contrôle Calendar0 du formulaire Calendrier:
Private Sub Calendar0_Click() Dim frm As String, frmPere As String Dim ctl As String Dim sep1 As Integer, sep2 As Integer sep1 = InStr(1, Me.Caption, "!") sep2 = InStrRev(Me.Caption, "!") If sep1 <> sep2 Then frmPere = Mid(Me.Caption, 1, sep1 - 1) frm = Mid(Me.Caption, sep1 + 1, sep2 - sep1 - 1) ctl = Mid(Me.Caption, sep2 + 1) Forms(frmPere)(frm)(ctl) = Me.Calendar0 Else frm = Mid(Me.Caption, 1, sep1 - 1) ctl = Mid(Me.Caption, sep1 + 1) Forms(frm)(ctl) = Me.Calendar0 End If DoCmd.Close End Sub
rem pour ouvrir le calendrier à la date du jour Private Sub Form_Load() Me.Calendar0.Value = Date End Sub
(PS: En partant du principe que Form2 ne contient pas, à son tour, un sous-formulaire avec un champ de type Date) Eric connait bien....