Je voudrais utiliser un contrôle calendrier, utilisable de n'importe où dans
mon appli.
J'ai donc créé un formulaire avec mon calendrier, formulaire que j'ouvre
lorsqu'on double clique sur un champ date de mes formulaires.
Je n'arrive pas à trouver la syntaxe pour, lorsqu'on clique sur le bouton OK
du calendrier, lui dire d'aller renseigner le champ d'où je vient, quel que
ce soit ce champ
Suis-je clair ???
Ex:
'Code d'un des formulaires
Private Sub txt_date_DblClick(Cancel As Integer)
Docmd.openform "F_CALENDRIER"
End Sub
'Code du bouton OK du formulaire calendrier
Private Sub cmd_ok_Click()
'Forms![F_CALENDRIER].Controls![txt_date] = ctl_calendrier.Value
>>> Ca, ça marche, mais je mets le nom du formulaire et du contrôle en dur
dans le code
End Sub
Private Sub cmd_ok_Click()
Form_Cal = Me.Name
Controle_Cal = "txt_date"
Forms![form_cal].controls![controle_cal]=ctl_calendrier
>>> Ca ne marche pas. En l'occurence, il cherche le formulaire nommé
"form_cal"
Forms![form_cal].controls![controle_cal]=ctl_calendrier
>>> Erreur de compilation: "Le caractère de déclaration de type ne
correspond pas au type de données déclaré"
la solution de Pierre me parait bonne. tu peux également transmettre les noms du formulaire et du contrôle par le openArgs ce qui pourrait rendre le calendrier un peu plus indépendant.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Antoine Labusquière" a écrit dans le message de news:c971cg$pni$
Si si, je l'ai dit dans le premier post :)
je plaisantais.
la solution de Pierre me parait bonne. tu peux également transmettre les
noms du formulaire et du contrôle par le openArgs ce qui pourrait rendre le
calendrier un peu plus indépendant.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Antoine Labusquière" <eltoinoo@wanadoo.fr> a écrit dans le message de
news:c971cg$pni$1@news-reader2.wanadoo.fr...
la solution de Pierre me parait bonne. tu peux également transmettre les noms du formulaire et du contrôle par le openArgs ce qui pourrait rendre le calendrier un peu plus indépendant.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Antoine Labusquière" a écrit dans le message de news:c971cg$pni$
Si si, je l'ai dit dans le premier post :)
Antoine Labusquière
Qu'est-ce à dire le OpenArgs ? Je supposait faire quelque chose comme ça, mais c'est justement sur ce point que la syntaxe pêche de mon côté.
"Raymond [mvp]" a écrit dans le message de news:
je plaisantais.
la solution de Pierre me parait bonne. tu peux également transmettre les noms du formulaire et du contrôle par le openArgs ce qui pourrait rendre le
calendrier un peu plus indépendant.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Antoine Labusquière" a écrit dans le message de news:c971cg$pni$
Si si, je l'ai dit dans le premier post :)
Qu'est-ce à dire le OpenArgs ?
Je supposait faire quelque chose comme ça, mais c'est justement sur ce point
que la syntaxe pêche de mon côté.
"Raymond [mvp]" <XYZ.access.seneque@free.fr> a écrit dans le message de
news:uWBrFlJREHA.3016@tk2msftngp13.phx.gbl...
je plaisantais.
la solution de Pierre me parait bonne. tu peux également transmettre les
noms du formulaire et du contrôle par le openArgs ce qui pourrait rendre
le
calendrier un peu plus indépendant.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Antoine Labusquière" <eltoinoo@wanadoo.fr> a écrit dans le message de
news:c971cg$pni$1@news-reader2.wanadoo.fr...
Qu'est-ce à dire le OpenArgs ? Je supposait faire quelque chose comme ça, mais c'est justement sur ce point que la syntaxe pêche de mon côté.
"Raymond [mvp]" a écrit dans le message de news:
je plaisantais.
la solution de Pierre me parait bonne. tu peux également transmettre les noms du formulaire et du contrôle par le openArgs ce qui pourrait rendre le
calendrier un peu plus indépendant.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Antoine Labusquière" a écrit dans le message de news:c971cg$pni$
Si si, je l'ai dit dans le premier post :)
Antoine Labusquière
Merci à tous, la solution de Pierre est la bonne. Je me suis emmelé les pinceaux entre les "!" et les ".". En fait, il suffit de ne pas en mettre, c'est plus simple :)
Bonne journée "Raymond [mvp]" a écrit dans le message de news:
je plaisantais.
la solution de Pierre me parait bonne. tu peux également transmettre les noms du formulaire et du contrôle par le openArgs ce qui pourrait rendre le
calendrier un peu plus indépendant.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Antoine Labusquière" a écrit dans le message de news:c971cg$pni$
Si si, je l'ai dit dans le premier post :)
Merci à tous, la solution de Pierre est la bonne.
Je me suis emmelé les pinceaux entre les "!" et les ".".
En fait, il suffit de ne pas en mettre, c'est plus simple :)
Bonne journée
"Raymond [mvp]" <XYZ.access.seneque@free.fr> a écrit dans le message de
news:uWBrFlJREHA.3016@tk2msftngp13.phx.gbl...
je plaisantais.
la solution de Pierre me parait bonne. tu peux également transmettre les
noms du formulaire et du contrôle par le openArgs ce qui pourrait rendre
le
calendrier un peu plus indépendant.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Antoine Labusquière" <eltoinoo@wanadoo.fr> a écrit dans le message de
news:c971cg$pni$1@news-reader2.wanadoo.fr...
Merci à tous, la solution de Pierre est la bonne. Je me suis emmelé les pinceaux entre les "!" et les ".". En fait, il suffit de ne pas en mettre, c'est plus simple :)
Bonne journée "Raymond [mvp]" a écrit dans le message de news:
je plaisantais.
la solution de Pierre me parait bonne. tu peux également transmettre les noms du formulaire et du contrôle par le openArgs ce qui pourrait rendre le
calendrier un peu plus indépendant.
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Antoine Labusquière" a écrit dans le message de news:c971cg$pni$
Si si, je l'ai dit dans le premier post :)
Raymond [mvp]
dans le formulaire appelant:
Private Sub Madate_DblClick(Cancel As Integer) DoCmd.OpenForm "calendrier", , , , , , Me.Name & " ;" & Screen.ActiveControl.Name End Sub
dans le formulaire calendrier: Dim frm As String Dim ctl As String Private Sub Form_Load() frm = Mid(OpenArgs, 1, InStr(1, OpenArgs, ";") - 1) ctl = Mid(OpenArgs, InStr(1, OpenArgs, ";") + 1) End Sub
ensuite tu te sers de frm et ctl dans la fonction Forms ......
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Antoine Labusquière" a écrit dans le message de news:c972c2$rb8$
Qu'est-ce à dire le OpenArgs ? Je supposait faire quelque chose comme ça, mais c'est justement sur ce point
que la syntaxe pêche de mon côté.
dans le formulaire appelant:
Private Sub Madate_DblClick(Cancel As Integer)
DoCmd.OpenForm "calendrier", , , , , , Me.Name & " ;" &
Screen.ActiveControl.Name
End Sub
dans le formulaire calendrier:
Dim frm As String
Dim ctl As String
Private Sub Form_Load()
frm = Mid(OpenArgs, 1, InStr(1, OpenArgs, ";") - 1)
ctl = Mid(OpenArgs, InStr(1, OpenArgs, ";") + 1)
End Sub
ensuite tu te sers de frm et ctl dans la fonction Forms ......
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Antoine Labusquière" <eltoinoo@wanadoo.fr> a écrit dans le message de
news:c972c2$rb8$1@news-reader1.wanadoo.fr...
Qu'est-ce à dire le OpenArgs ?
Je supposait faire quelque chose comme ça, mais c'est justement sur ce
point
Private Sub Madate_DblClick(Cancel As Integer) DoCmd.OpenForm "calendrier", , , , , , Me.Name & " ;" & Screen.ActiveControl.Name End Sub
dans le formulaire calendrier: Dim frm As String Dim ctl As String Private Sub Form_Load() frm = Mid(OpenArgs, 1, InStr(1, OpenArgs, ";") - 1) ctl = Mid(OpenArgs, InStr(1, OpenArgs, ";") + 1) End Sub
ensuite tu te sers de frm et ctl dans la fonction Forms ......
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Antoine Labusquière" a écrit dans le message de news:c972c2$rb8$
Qu'est-ce à dire le OpenArgs ? Je supposait faire quelque chose comme ça, mais c'est justement sur ce point
que la syntaxe pêche de mon côté.
Raymond [mvp]
Juste pour le plaisir: le calendrier étant dans un formulaire séparé, mettre ce formulaire en fenêtre indépendante. appeler le calendrier de cette façon:
Private Sub Madate_DblClick(Cancel As Integer) DoCmd.OpenForm "calendrier" Forms("calendrier").Caption = Me.Name & "!" & Me.Madate.Name End Sub
mettre ceci dans le code du calendrier: Private Sub Calendar0_Click() Dim frm As String Dim ctl As String On Error GoTo Err_Args frm = Mid(Me.Caption, 1, InStr(1, Me.Caption, "!") - 1) ctl = Mid(Me.Caption, InStr(1, Me.Caption, "!") + 1) If IsNull(frm) Or frm = "" Or IsNull(ctl) Or ctl = "" Then GoTo Err_Args Forms(frm)(ctl) = Me.Calendar0 Err_Args: End Sub
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Antoine Labusquière" a écrit dans le message de news:c972ng$ij0$
Merci à tous, la solution de Pierre est la bonne. Je me suis emmelé les pinceaux entre les "!" et les ".". En fait, il suffit de ne pas en mettre, c'est plus simple :)
Bonne journée
Juste pour le plaisir:
le calendrier étant dans un formulaire séparé, mettre ce formulaire en
fenêtre indépendante.
appeler le calendrier de cette façon:
Private Sub Madate_DblClick(Cancel As Integer)
DoCmd.OpenForm "calendrier"
Forms("calendrier").Caption = Me.Name & "!" & Me.Madate.Name
End Sub
mettre ceci dans le code du calendrier:
Private Sub Calendar0_Click()
Dim frm As String
Dim ctl As String
On Error GoTo Err_Args
frm = Mid(Me.Caption, 1, InStr(1, Me.Caption, "!") - 1)
ctl = Mid(Me.Caption, InStr(1, Me.Caption, "!") + 1)
If IsNull(frm) Or frm = "" Or IsNull(ctl) Or ctl = "" Then GoTo Err_Args
Forms(frm)(ctl) = Me.Calendar0
Err_Args:
End Sub
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Antoine Labusquière" <eltoinoo@wanadoo.fr> a écrit dans le message de
news:c972ng$ij0$1@news-reader4.wanadoo.fr...
Merci à tous, la solution de Pierre est la bonne.
Je me suis emmelé les pinceaux entre les "!" et les ".".
En fait, il suffit de ne pas en mettre, c'est plus simple :)
Juste pour le plaisir: le calendrier étant dans un formulaire séparé, mettre ce formulaire en fenêtre indépendante. appeler le calendrier de cette façon:
Private Sub Madate_DblClick(Cancel As Integer) DoCmd.OpenForm "calendrier" Forms("calendrier").Caption = Me.Name & "!" & Me.Madate.Name End Sub
mettre ceci dans le code du calendrier: Private Sub Calendar0_Click() Dim frm As String Dim ctl As String On Error GoTo Err_Args frm = Mid(Me.Caption, 1, InStr(1, Me.Caption, "!") - 1) ctl = Mid(Me.Caption, InStr(1, Me.Caption, "!") + 1) If IsNull(frm) Or frm = "" Or IsNull(ctl) Or ctl = "" Then GoTo Err_Args Forms(frm)(ctl) = Me.Calendar0 Err_Args: End Sub
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Antoine Labusquière" a écrit dans le message de news:c972ng$ij0$
Merci à tous, la solution de Pierre est la bonne. Je me suis emmelé les pinceaux entre les "!" et les ".". En fait, il suffit de ne pas en mettre, c'est plus simple :)