OVH Cloud OVH Cloud

Problème de syntaxe

15 réponses
Avatar
Antoine Labusquière
Bonjour à tous.

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é"

End Sub

10 réponses

1 2
Avatar
Pierre CFI [mvp]
bonjour
screen.PreviousControl =....
il est bon de vérifier que le dernier controle est pas une case à cocher,
if screen.PreviousControl.name ="boncontrole" then
screen.PreviousControl = calendar.value

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Antoine Labusquière" a écrit dans le message de news:c96ru5$4mq$
Bonjour à tous.

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é"




End Sub









Avatar
Antoine Labusquière
Le problème dans cet exemple, c'est que le dernier contrôle est en fait le
contrôle calendrier dès lors qu'on a sélectionné une date.



"Pierre CFI [mvp]" a écrit dans le message de
news:%
bonjour
screen.PreviousControl =....
il est bon de vérifier que le dernier controle est pas une case à cocher,
if screen.PreviousControl.name ="boncontrole" then
screen.PreviousControl = calendar.value

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Antoine Labusquière" a écrit dans le message de
news:c96ru5$4mq$

Bonjour à tous.

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é"




End Sub













Avatar
Pierre CFI [mvp]
non, c'est le controle que l'on vient de quitter pour cliquer sur le calendrier
toujours essayer avant de dire non :o)))

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Antoine Labusquière" a écrit dans le message de news:c96tcm$7et$
Le problème dans cet exemple, c'est que le dernier contrôle est en fait le
contrôle calendrier dès lors qu'on a sélectionné une date.



"Pierre CFI [mvp]" a écrit dans le message de
news:%
bonjour
screen.PreviousControl =....
il est bon de vérifier que le dernier controle est pas une case à cocher,
if screen.PreviousControl.name ="boncontrole" then
screen.PreviousControl = calendar.value

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Antoine Labusquière" a écrit dans le message de
news:c96ru5$4mq$

Bonjour à tous.

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é"




End Sub

















Avatar
Antoine Labusquière
Ben je viens d'essayer, et je peut te confirmer que si je lance un msgbox
sur le bouton OK, c'est bien le contrôle calendrier qui sort, ce qui est
logique.

L'enchainement c'est:
1. Ouverture du Calendrier sur double clic d'un champ date
2. Sélection de la date dans le calendrier
3. Clic sur bouton OK pour valider le choix de la date



"Pierre CFI [mvp]" a écrit dans le message de
news:%
non, c'est le controle que l'on vient de quitter pour cliquer sur le
calendrier

toujours essayer avant de dire non :o)))


Avatar
Antoine Labusquière
La solution serait de pouvoir stocker la valeur de Screen?previouscontrol à
l'ouverture du formulaire calendrier, mais comment m'en servir après ?


"Antoine Labusquière" a écrit dans le message de
news:c96tpf$1u8$
Ben je viens d'essayer, et je peut te confirmer que si je lance un msgbox
sur le bouton OK, c'est bien le contrôle calendrier qui sort, ce qui est
logique.

L'enchainement c'est:
1. Ouverture du Calendrier sur double clic d'un champ date
2. Sélection de la date dans le calendrier
3. Clic sur bouton OK pour valider le choix de la date



"Pierre CFI [mvp]" a écrit dans le message de
news:%
non, c'est le controle que l'on vient de quitter pour cliquer sur le
calendrier

toujours essayer avant de dire non :o)))






Avatar
Pierre CFI [mvp]
dans un module stantard tu declare Public 2 variables String, une pour le nom du form et l'autre pour le nom du controle
dans le double clic
NomForm = Me.name
NomCtr = me.ActiveControl.name

puis sur le clic du btn du form calendar
Forms(NomForm).controls(Nomctr) = caledar.value
j'ai pas testé mais çà doit pas étre trop mauvais

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Antoine Labusquière" a écrit dans le message de news:c96tse$23c$
La solution serait de pouvoir stocker la valeur de Screen?previouscontrol à
l'ouverture du formulaire calendrier, mais comment m'en servir après ?


"Antoine Labusquière" a écrit dans le message de
news:c96tpf$1u8$
Ben je viens d'essayer, et je peut te confirmer que si je lance un msgbox
sur le bouton OK, c'est bien le contrôle calendrier qui sort, ce qui est
logique.

L'enchainement c'est:
1. Ouverture du Calendrier sur double clic d'un champ date
2. Sélection de la date dans le calendrier
3. Clic sur bouton OK pour valider le choix de la date



"Pierre CFI [mvp]" a écrit dans le message de
news:%
non, c'est le controle que l'on vient de quitter pour cliquer sur le
calendrier

toujours essayer avant de dire non :o)))










Avatar
Raymond [mvp]
je peux mimisser ?

si c'est un contrôle calendrier mscal c'est comme Pierre a dit sur son
premier post.
Private Sub Calendar5_Click()
Screen.PreviousControl = Me.Calendar5
End Sub
ça marche très bien, en tenant compte que l'événement click du calendrier
n'est pas porté dans les propriétés mais seulement dans la liste dans VBE.
il faut bien sur être sûr que le contrôle est bon à recevoir la donnée.
mon problème c'est que je n'ai pas de bouton ok sur le mscal, quel est le
type de calendrier utilisé ?
--
@+
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


"Pierre CFI [mvp]" a écrit dans le message de
news:
dans un module stantard tu declare Public 2 variables String, une pour le
nom du form et l'autre pour le nom du controle

dans le double clic
NomForm = Me.name
NomCtr = me.ActiveControl.name

puis sur le clic du btn du form calendar
Forms(NomForm).controls(Nomctr) = caledar.value
j'ai pas testé mais çà doit pas étre trop mauvais

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Antoine Labusquière" a écrit dans le message de
news:c96tse$23c$

La solution serait de pouvoir stocker la valeur de
Screen?previouscontrol à


l'ouverture du formulaire calendrier, mais comment m'en servir après ?


"Antoine Labusquière" a écrit dans le message de
news:c96tpf$1u8$
Ben je viens d'essayer, et je peut te confirmer que si je lance un
msgbox



sur le bouton OK, c'est bien le contrôle calendrier qui sort, ce qui
est



logique.

L'enchainement c'est:
1. Ouverture du Calendrier sur double clic d'un champ date
2. Sélection de la date dans le calendrier
3. Clic sur bouton OK pour valider le choix de la date



"Pierre CFI [mvp]" a écrit dans le message
de



news:%
non, c'est le controle que l'on vient de quitter pour cliquer sur le
calendrier

toujours essayer avant de dire non :o)))














Avatar
Pierre CFI [mvp]
imisse toi mon petit Raymond, en fait le controle calendar est dans un autre form
çà fait un genre de pop

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Raymond [mvp]" a écrit dans le message de news:
je peux mimisser ?

si c'est un contrôle calendrier mscal c'est comme Pierre a dit sur son
premier post.
Private Sub Calendar5_Click()
Screen.PreviousControl = Me.Calendar5
End Sub
ça marche très bien, en tenant compte que l'événement click du calendrier
n'est pas porté dans les propriétés mais seulement dans la liste dans VBE.
il faut bien sur être sûr que le contrôle est bon à recevoir la donnée.
mon problème c'est que je n'ai pas de bouton ok sur le mscal, quel est le
type de calendrier utilisé ?
--
@+
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


"Pierre CFI [mvp]" a écrit dans le message de
news:
dans un module stantard tu declare Public 2 variables String, une pour le
nom du form et l'autre pour le nom du controle

dans le double clic
NomForm = Me.name
NomCtr = me.ActiveControl.name

puis sur le clic du btn du form calendar
Forms(NomForm).controls(Nomctr) = caledar.value
j'ai pas testé mais çà doit pas étre trop mauvais

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Antoine Labusquière" a écrit dans le message de
news:c96tse$23c$

La solution serait de pouvoir stocker la valeur de
Screen?previouscontrol à


l'ouverture du formulaire calendrier, mais comment m'en servir après ?


"Antoine Labusquière" a écrit dans le message de
news:c96tpf$1u8$
Ben je viens d'essayer, et je peut te confirmer que si je lance un
msgbox



sur le bouton OK, c'est bien le contrôle calendrier qui sort, ce qui
est



logique.

L'enchainement c'est:
1. Ouverture du Calendrier sur double clic d'un champ date
2. Sélection de la date dans le calendrier
3. Clic sur bouton OK pour valider le choix de la date



"Pierre CFI [mvp]" a écrit dans le message
de



news:%
non, c'est le controle que l'on vient de quitter pour cliquer sur le
calendrier

toujours essayer avant de dire non :o)))


















Avatar
Raymond [mvp]
si on ne dit pas tout ?

--
@+
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


"Pierre CFI [mvp]" a écrit dans le message de
news:e3%
imisse toi mon petit Raymond, en fait le controle calendar est dans un
autre form

çà fait un genre de pop

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Raymond [mvp]" a écrit dans le message de
news:

je peux mimisser ?

si c'est un contrôle calendrier mscal c'est comme Pierre a dit sur son
premier post.
Private Sub Calendar5_Click()
Screen.PreviousControl = Me.Calendar5
End Sub
ça marche très bien, en tenant compte que l'événement click du
calendrier


n'est pas porté dans les propriétés mais seulement dans la liste dans
VBE.


il faut bien sur être sûr que le contrôle est bon à recevoir la donnée.
mon problème c'est que je n'ai pas de bouton ok sur le mscal, quel est
le


type de calendrier utilisé ?
--
@+
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


"Pierre CFI [mvp]" a écrit dans le message de
news:
dans un module stantard tu declare Public 2 variables String, une pour
le



nom du form et l'autre pour le nom du controle
dans le double clic
NomForm = Me.name
NomCtr = me.ActiveControl.name

puis sur le clic du btn du form calendar
Forms(NomForm).controls(Nomctr) = caledar.value
j'ai pas testé mais çà doit pas étre trop mauvais

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Antoine Labusquière" a écrit dans le message de
news:c96tse$23c$

La solution serait de pouvoir stocker la valeur de
Screen?previouscontrol à


l'ouverture du formulaire calendrier, mais comment m'en servir après
?






"Antoine Labusquière" a écrit dans le message
de




news:c96tpf$1u8$
Ben je viens d'essayer, et je peut te confirmer que si je lance un
msgbox



sur le bouton OK, c'est bien le contrôle calendrier qui sort, ce
qui





est
logique.

L'enchainement c'est:
1. Ouverture du Calendrier sur double clic d'un champ date
2. Sélection de la date dans le calendrier
3. Clic sur bouton OK pour valider le choix de la date



"Pierre CFI [mvp]" a écrit dans le
message





de
news:%
non, c'est le controle que l'on vient de quitter pour cliquer
sur le






calendrier
toujours essayer avant de dire non :o)))






















Avatar
Antoine Labusquière
Si si, je l'ai dit dans le premier post :)

"Raymond [mvp]" a écrit dans le message de
news:
si on ne dit pas tout ?

--
@+
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


"Pierre CFI [mvp]" a écrit dans le message de
news:e3%
imisse toi mon petit Raymond, en fait le controle calendar est dans un
autre form

çà fait un genre de pop

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Raymond [mvp]" a écrit dans le message de
news:

je peux mimisser ?

si c'est un contrôle calendrier mscal c'est comme Pierre a dit sur son
premier post.
Private Sub Calendar5_Click()
Screen.PreviousControl = Me.Calendar5
End Sub
ça marche très bien, en tenant compte que l'événement click du
calendrier


n'est pas porté dans les propriétés mais seulement dans la liste dans
VBE.


il faut bien sur être sûr que le contrôle est bon à recevoir la
donnée.



mon problème c'est que je n'ai pas de bouton ok sur le mscal, quel est
le


type de calendrier utilisé ?
--
@+
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


"Pierre CFI [mvp]" a écrit dans le message
de



news:
dans un module stantard tu declare Public 2 variables String, une
pour




le
nom du form et l'autre pour le nom du controle
dans le double clic
NomForm = Me.name
NomCtr = me.ActiveControl.name

puis sur le clic du btn du form calendar
Forms(NomForm).controls(Nomctr) = caledar.value
j'ai pas testé mais çà doit pas étre trop mauvais

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Antoine Labusquière" a écrit dans le message
de




news:c96tse$23c$
La solution serait de pouvoir stocker la valeur de
Screen?previouscontrol à


l'ouverture du formulaire calendrier, mais comment m'en servir
après





?


"Antoine Labusquière" a écrit dans le
message





de
news:c96tpf$1u8$
Ben je viens d'essayer, et je peut te confirmer que si je lance
un






msgbox
sur le bouton OK, c'est bien le contrôle calendrier qui sort, ce
qui





est
logique.

L'enchainement c'est:
1. Ouverture du Calendrier sur double clic d'un champ date
2. Sélection de la date dans le calendrier
3. Clic sur bouton OK pour valider le choix de la date



"Pierre CFI [mvp]" a écrit dans le
message





de
news:%
non, c'est le controle que l'on vient de quitter pour cliquer
sur le






calendrier
toujours essayer avant de dire non :o)))


























1 2