OVH Cloud OVH Cloud

Calendrier : pb de syntaxe de path ?

4 réponses
Avatar
Pierre REIT
Bonjour à tous,

J'ai un formulaire principal et un sous formulaire.
Je renseigne la date à l'aide du calendrier disponible ici :
http://officesystem.access.free.fr/ex_calendrier1.htm (code à la fin de ce
message).

J'appelle le calendrier depuis le sous-formulaire pour renseigner
Date_Next_Action, ça fonctionne bien :

Private Sub Date_Next_Action_DblClick(Cancel As Integer)
DoCmd.OpenForm "calendrier"
Forms("calendrier").Caption = Me.Name & "!" & Me.Name & "!" &
Me.Date_Next_Action.Name
End Sub

J'appelle le même calendrier depuis le formulaire principal pour renseigner
AutreDate, ça ne fonctionne pas, la date ne s'inscrit pas :

Private Sub AutreDate_DblClick(Cancel As Integer)
DoCmd.OpenForm "calendrier"
Forms("calendrier").Caption = Me.Name & "!" & Me.AutreDate.Name
End Sub

Ca doit être un bête pb de syntaxe de path ???
Merci pour vos conseils.
PierreR (débutant)

Code du calendrier (Je remercie Eric pour ses conseils) :

Private Sub Calendar0_Click()
Dim frm As String, frmPere As String
Dim ctl As String
Dim sep1 As Integer, sep2 As Integer
On Error GoTo Err_Args
sep1 = InStr(1, Me.Caption, "!") ' 1er !
sep2 = InStrRev(Me.Caption, "!") ' 2eme !
frmPere = Mid(Me.Caption, 1, sep1 - 1) ' nom formulaire ppal
frm = Mid(Me.Caption, sep1 + 1, sep2 - sep1 - 1) ' nom du sous-frm
ctl = Mid(Me.Caption, sep2 + 1) ' nom du controle
If IsNull(frm) Or frm = "" Or IsNull(ctl) Or ctl = "" Then GoTo Err_Args
Forms(frmPere)(frm)(ctl) = Me.Calendar0 ' affectation de la valeur
Err_Args:
End Sub

Private Sub Form_Load()
Me.Calendar0.Value = Date
End Sub

4 réponses

Avatar
Eric
Bonsoir,

Regardes si ce code posté pour Jacques correspond à ton attente, suite à
ton post du 06/10/2006 ici : http://minilien.com/?udusKUfVeB

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

Bonjour à tous,

J'ai un formulaire principal et un sous formulaire.
Je renseigne la date à l'aide du calendrier disponible ici :
http://officesystem.access.free.fr/ex_calendrier1.htm (code à la fin de ce
message).

J'appelle le calendrier depuis le sous-formulaire pour renseigner
Date_Next_Action, ça fonctionne bien :

Private Sub Date_Next_Action_DblClick(Cancel As Integer)
DoCmd.OpenForm "calendrier"
Forms("calendrier").Caption = Me.Name & "!" & Me.Name & "!" &
Me.Date_Next_Action.Name
End Sub

J'appelle le même calendrier depuis le formulaire principal pour renseigner
AutreDate, ça ne fonctionne pas, la date ne s'inscrit pas :

Private Sub AutreDate_DblClick(Cancel As Integer)
DoCmd.OpenForm "calendrier"
Forms("calendrier").Caption = Me.Name & "!" & Me.AutreDate.Name
End Sub

Ca doit être un bête pb de syntaxe de path ???
Merci pour vos conseils.
PierreR (débutant)

Code du calendrier (Je remercie Eric pour ses conseils) :

Private Sub Calendar0_Click()
Dim frm As String, frmPere As String
Dim ctl As String
Dim sep1 As Integer, sep2 As Integer
On Error GoTo Err_Args
sep1 = InStr(1, Me.Caption, "!") ' 1er !
sep2 = InStrRev(Me.Caption, "!") ' 2eme !
frmPere = Mid(Me.Caption, 1, sep1 - 1) ' nom formulaire ppal
frm = Mid(Me.Caption, sep1 + 1, sep2 - sep1 - 1) ' nom du sous-frm
ctl = Mid(Me.Caption, sep2 + 1) ' nom du controle
If IsNull(frm) Or frm = "" Or IsNull(ctl) Or ctl = "" Then GoTo Err_Args
Forms(frmPere)(frm)(ctl) = Me.Calendar0 ' affectation de la valeur
Err_Args:
End Sub

Private Sub Form_Load()
Me.Calendar0.Value = Date
End Sub




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Pierre REIT
Bonjour Eric
Oui, j'avais lu ton intervention sur la question de Jacques.
Mais, ce qui me perturbe, c'est qu'il n'y ai qu'un seul champ DATE
(DateFacture).
Moi j'en ai 2 avec des noms différents. Faut-il que je mette le même code
(Private Sub DateFacture_DblClick...) sur les deux champs DATE en changeant
leur nom dans le code ou que je nome mes champs DATE avec le même nom.
Merci.
PierreR

PS : Je ne connaissait pas l'accès au forum par Google Groupes, c'est
beaucoup plus lisible que sur Microsoft !



Bonsoir,

Regardes si ce code posté pour Jacques correspond à ton attente, suite à
ton post du 06/10/2006 ici : http://minilien.com/?udusKUfVeB

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

Bonjour à tous,

J'ai un formulaire principal et un sous formulaire.
Je renseigne la date à l'aide du calendrier disponible ici :
http://officesystem.access.free.fr/ex_calendrier1.htm (code à la fin de ce
message).

J'appelle le calendrier depuis le sous-formulaire pour renseigner
Date_Next_Action, ça fonctionne bien :

Private Sub Date_Next_Action_DblClick(Cancel As Integer)
DoCmd.OpenForm "calendrier"
Forms("calendrier").Caption = Me.Name & "!" & Me.Name & "!" &
Me.Date_Next_Action.Name
End Sub

J'appelle le même calendrier depuis le formulaire principal pour renseigner
AutreDate, ça ne fonctionne pas, la date ne s'inscrit pas :

Private Sub AutreDate_DblClick(Cancel As Integer)
DoCmd.OpenForm "calendrier"
Forms("calendrier").Caption = Me.Name & "!" & Me.AutreDate.Name
End Sub

Ca doit être un bête pb de syntaxe de path ???
Merci pour vos conseils.
PierreR (débutant)

Code du calendrier (Je remercie Eric pour ses conseils) :

Private Sub Calendar0_Click()
Dim frm As String, frmPere As String
Dim ctl As String
Dim sep1 As Integer, sep2 As Integer
On Error GoTo Err_Args
sep1 = InStr(1, Me.Caption, "!") ' 1er !
sep2 = InStrRev(Me.Caption, "!") ' 2eme !
frmPere = Mid(Me.Caption, 1, sep1 - 1) ' nom formulaire ppal
frm = Mid(Me.Caption, sep1 + 1, sep2 - sep1 - 1) ' nom du sous-frm
ctl = Mid(Me.Caption, sep2 + 1) ' nom du controle
If IsNull(frm) Or frm = "" Or IsNull(ctl) Or ctl = "" Then GoTo Err_Args
Forms(frmPere)(frm)(ctl) = Me.Calendar0 ' affectation de la valeur
Err_Args:
End Sub

Private Sub Form_Load()
Me.Calendar0.Value = Date
End Sub




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr




Avatar
Eric
Bonjour Pierre,

Si j'ai bien compris ton problème !

Sur le controle AutreDate du formulaire principal, tu mets sur
l'évènement Dble_Click()
Private Sub AutreDate_DblClick(Cancel As Integer)
DoCmd.OpenForm "calendrier"
Forms("calendrier").Caption = Me.Name & "!" & Me.AutreDate.Name
End Sub

Sur le controle Date_Next_Action du sous-formulaire :
Private Sub Date_Next_Action_DblClick(Cancel As Integer)
DoCmd.OpenForm "calendrier"
Forms("calendrier").Caption = Me.Parent.Name & "!" _
& Me.Name & "!" & Me.Date_Next_Action.Name
End Sub

Seule la procédure du calendrier doit être modifiée comme proposée dans
mon post précédent, afin d'éviter de devoir gérer 2 formulaires 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 ' le controle est dans le sous-form
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 ' le controle est dans le form principal
frm = Mid(Me.Caption, 1, sep1 - 1)
ctl = Mid(Me.Caption, sep1 + 1)
Forms(frm)(ctl) = Me.Calendar0
End If
DoCmd.Close
End Sub

Bonjour Eric
Oui, j'avais lu ton intervention sur la question de Jacques.
Mais, ce qui me perturbe, c'est qu'il n'y ai qu'un seul champ DATE
(DateFacture).
Moi j'en ai 2 avec des noms différents. Faut-il que je mette le même code
(Private Sub DateFacture_DblClick...) sur les deux champs DATE en changeant
leur nom dans le code ou que je nome mes champs DATE avec le même nom.
Merci.
PierreR

PS : Je ne connaissait pas l'accès au forum par Google Groupes, c'est
beaucoup plus lisible que sur Microsoft !




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Pierre REIT
Bonjour Eric
Ca fonctionne très bien
Merci beaucoup pour ton aide
PierreR


Bonjour Pierre,

Si j'ai bien compris ton problème !

Sur le controle AutreDate du formulaire principal, tu mets sur
l'évènement Dble_Click()
Private Sub AutreDate_DblClick(Cancel As Integer)
DoCmd.OpenForm "calendrier"
Forms("calendrier").Caption = Me.Name & "!" & Me.AutreDate.Name
End Sub

Sur le controle Date_Next_Action du sous-formulaire :
Private Sub Date_Next_Action_DblClick(Cancel As Integer)
DoCmd.OpenForm "calendrier"
Forms("calendrier").Caption = Me.Parent.Name & "!" _
& Me.Name & "!" & Me.Date_Next_Action.Name
End Sub

Seule la procédure du calendrier doit être modifiée comme proposée dans
mon post précédent, afin d'éviter de devoir gérer 2 formulaires 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 ' le controle est dans le sous-form
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 ' le controle est dans le form principal
frm = Mid(Me.Caption, 1, sep1 - 1)
ctl = Mid(Me.Caption, sep1 + 1)
Forms(frm)(ctl) = Me.Calendar0
End If
DoCmd.Close
End Sub

Bonjour Eric
Oui, j'avais lu ton intervention sur la question de Jacques.
Mais, ce qui me perturbe, c'est qu'il n'y ai qu'un seul champ DATE
(DateFacture).
Moi j'en ai 2 avec des noms différents. Faut-il que je mette le même code
(Private Sub DateFacture_DblClick...) sur les deux champs DATE en changeant
leur nom dans le code ou que je nome mes champs DATE avec le même nom.
Merci.
PierreR

PS : Je ne connaissait pas l'accès au forum par Google Groupes, c'est
beaucoup plus lisible que sur Microsoft !




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr