Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tests lancés avant validation de valeurs

9 réponses
Avatar
zOrg2net
Ave @ tous,

Me voici confronté à un nouveau problème.

Donc, dans un sous formulaire, je saisie des dates grâce au contrôle
calendrier. Les évènements double clic des champs texte qui doivent recevoir
les valeurs m'ouvre le calendrier et ils se mettent à jour avec les dates
sélectionnées. J'ai besoin de faire des tests de validité sur ces dates et
c'est là que ca se corse. Je me suis aperçu que mes tests étaient lancés
avant que les contrôles ne recoivent la date. Conclusion, mes tests ne
servent à rien, puisque la date n'est pas encore validée. J'ai mis mes tests
dans tous les évènements possible, même sur perte de focus et ça ne marche
pas. J'ai mis des pauses avec sSleep(cTIME), ça ne donne rien. Les tests sont
lancés avant même que le calendrier ne soit fermé.

Quelqu'un qui a peut-être déjà eu ce petit soucis, voudra-t-il partager sa
solution avec moi ??

Merci d'avance pour vos contributions.

zOrg2net
7OuNet
Le dicton du jour: Assiter un criminel avant qu'il ne soit arrêté, c'est
être son complice. Assiter un criminel après qu'il soit arrêté, c'est être
son avocat.

9 réponses

Avatar
Fabien
Salut a toi zOrg2net
Alors encore avec ton calendrier ? ;-)
Ai je bien compris to soucis ?
Une zone texte. Tu fais un double clic. Sur cet évènement tu active le
controle calendrier.
Aprés séléction de la date, tu retournes la valeur dans la zone texte.
Et là tu ne peux ta controler ta date ?
Est il possible de voir le code que tu utilises ?


Ave @ tous,

Me voici confronté à un nouveau problème.

Donc, dans un sous formulaire, je saisie des dates grâce au contrôle
calendrier. Les évènements double clic des champs texte qui doivent recevoir
les valeurs m'ouvre le calendrier et ils se mettent à jour avec les dates
sélectionnées. J'ai besoin de faire des tests de validité sur ces dates et
c'est là que ca se corse. Je me suis aperçu que mes tests étaient lancés
avant que les contrôles ne recoivent la date. Conclusion, mes tests ne
servent à rien, puisque la date n'est pas encore validée. J'ai mis mes tests
dans tous les évènements possible, même sur perte de focus et ça ne marche
pas. J'ai mis des pauses avec sSleep(cTIME), ça ne donne rien. Les tests sont
lancés avant même que le calendrier ne soit fermé.

Quelqu'un qui a peut-être déjà eu ce petit soucis, voudra-t-il partager sa
solution avec moi ??

Merci d'avance pour vos contributions.

zOrg2net
7OuNet
Le dicton du jour: Assiter un criminel avant qu'il ne soit arrêté, c'est
être son complice. Assiter un criminel après qu'il soit arrêté, c'est être
son avocat.


Avatar
zOrg2net
Salut Fabien,
Hé oui! Après les soucis du calendrier, voici d'autres soucis imprévus.
Pourtant on dit toujours que les soucis sont de Lyon. C'est même pas vrai!!

Voici le code incriminé:

Private Sub Date_Retour_prevu_ES_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.Date_Retour_prevu_ES.Name

If Me!Date_Retour_prevu_ES < Me!Date_Sortie_ES Then
MsgBox "Cette date n'est pas valide, elle est inférieure à la date
de sortie." & Chr(10) & "Veuillez recommencer votre saisie."
Me!Date_Retour_prevu_ES = Null
Me!Date_Retour_prevu_ES.SetFocus
ElseIf Me!Date_Retour_prevu_ES - Me!Date_Sortie_ES < 7 Then
MsgBox "La date saisie doit correspondre à minima, à une semaine" &
Chr(10) _
& "après la date de sortie. Veuillez recommencez votre saisie!"
Me!Date_Retour_prevu_ES = Null
Me!Date_Retour_prevu_ES.SetFocus
End If

If IsDate(Date_Sortie_ES) And Not IsDate(Date_Retour_reelle_ES) Then
Disponible_matos = False
End If

Me!Reglement_verse_ES.SetFocus
Refresh
Exit Sub

Err_Calendrier:
If Err.Number = 2452 Then
Forms("calendrier").Caption = Me.Name & _
"!" & Me.Date_Retour_prevu_ES.Name
Else
Forms("calendrier").Caption = Me.Parent.Name & _
"!" & Me.Name & "!" & Me.Date_Retour_prevu_ES.Name
End If
Resume Next
End Sub

et donc comme je le disais les tests sont exécutés avant qu'il n'y ai une
date dans le contrôle adéquat.

zOr2net


Salut a toi zOrg2net
Alors encore avec ton calendrier ? ;-)
Ai je bien compris to soucis ?
Une zone texte. Tu fais un double clic. Sur cet évènement tu active le
controle calendrier.
Aprés séléction de la date, tu retournes la valeur dans la zone texte.
Et là tu ne peux ta controler ta date ?
Est il possible de voir le code que tu utilises ?


Ave @ tous,

Me voici confronté à un nouveau problème.

Donc, dans un sous formulaire, je saisie des dates grâce au contrôle
calendrier. Les évènements double clic des champs texte qui doivent recevoir
les valeurs m'ouvre le calendrier et ils se mettent à jour avec les dates
sélectionnées. J'ai besoin de faire des tests de validité sur ces dates et
c'est là que ca se corse. Je me suis aperçu que mes tests étaient lancés
avant que les contrôles ne recoivent la date. Conclusion, mes tests ne
servent à rien, puisque la date n'est pas encore validée. J'ai mis mes tests
dans tous les évènements possible, même sur perte de focus et ça ne marche
pas. J'ai mis des pauses avec sSleep(cTIME), ça ne donne rien. Les tests sont
lancés avant même que le calendrier ne soit fermé.

Quelqu'un qui a peut-être déjà eu ce petit soucis, voudra-t-il partager sa
solution avec moi ??

Merci d'avance pour vos contributions.

zOrg2net
7OuNet
Le dicton du jour: Assiter un criminel avant qu'il ne soit arrêté, c'est
être son complice. Assiter un criminel après qu'il soit arrêté, c'est être
son avocat.





Avatar
Fabien
Ok je comprend mieux!
Et le comportement d'access est normal. Le fait d'ouvrir ton calendrier
n'arrête pas pour autant le déroulement de la suite de ta procédure. Ce
qui explique le (non) résultat.
J'ai déjà eu a faire a ce comportement mais c'était pour l'execution
d'un batch sous dos et il fallait que j'attende que le batch soit
terminé pour continuer ma procédure.
Regarde plus haut dans les post il y a, je crois, un post faisant
référence à l'ouverture d'un formulaire par un autre pour ensuite
recuperer des date de début et de fin de période. C'est peut être une
piste ......
bon appétit !
@+


Salut Fabien,
Hé oui! Après les soucis du calendrier, voici d'autres soucis imprévus.
Pourtant on dit toujours que les soucis sont de Lyon. C'est même pas vrai!!

Voici le code incriminé:

Private Sub Date_Retour_prevu_ES_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.Date_Retour_prevu_ES.Name

If Me!Date_Retour_prevu_ES < Me!Date_Sortie_ES Then
MsgBox "Cette date n'est pas valide, elle est inférieure à la date
de sortie." & Chr(10) & "Veuillez recommencer votre saisie."
Me!Date_Retour_prevu_ES = Null
Me!Date_Retour_prevu_ES.SetFocus
ElseIf Me!Date_Retour_prevu_ES - Me!Date_Sortie_ES < 7 Then
MsgBox "La date saisie doit correspondre à minima, à une semaine" &
Chr(10) _
& "après la date de sortie. Veuillez recommencez votre saisie!"
Me!Date_Retour_prevu_ES = Null
Me!Date_Retour_prevu_ES.SetFocus
End If

If IsDate(Date_Sortie_ES) And Not IsDate(Date_Retour_reelle_ES) Then
Disponible_matos = False
End If

Me!Reglement_verse_ES.SetFocus
Refresh
Exit Sub

Err_Calendrier:
If Err.Number = 2452 Then
Forms("calendrier").Caption = Me.Name & _
"!" & Me.Date_Retour_prevu_ES.Name
Else
Forms("calendrier").Caption = Me.Parent.Name & _
"!" & Me.Name & "!" & Me.Date_Retour_prevu_ES.Name
End If
Resume Next
End Sub

et donc comme je le disais les tests sont exécutés avant qu'il n'y ai une
date dans le contrôle adéquat.

zOr2net


Salut a toi zOrg2net
Alors encore avec ton calendrier ? ;-)
Ai je bien compris to soucis ?
Une zone texte. Tu fais un double clic. Sur cet évènement tu active le
controle calendrier.
Aprés séléction de la date, tu retournes la valeur dans la zone texte.
Et là tu ne peux ta controler ta date ?
Est il possible de voir le code que tu utilises ?


Ave @ tous,

Me voici confronté à un nouveau problème.

Donc, dans un sous formulaire, je saisie des dates grâce au contrôle
calendrier. Les évènements double clic des champs texte qui doivent recevoir
les valeurs m'ouvre le calendrier et ils se mettent à jour avec les dates
sélectionnées. J'ai besoin de faire des tests de validité sur ces dates et
c'est là que ca se corse. Je me suis aperçu que mes tests étaient lancés
avant que les contrôles ne recoivent la date. Conclusion, mes tests ne
servent à rien, puisque la date n'est pas encore validée. J'ai mis mes tests
dans tous les évènements possible, même sur perte de focus et ça ne marche
pas. J'ai mis des pauses avec sSleep(cTIME), ça ne donne rien. Les tests sont
lancés avant même que le calendrier ne soit fermé.

Quelqu'un qui a peut-être déjà eu ce petit soucis, voudra-t-il partager sa
solution avec moi ??

Merci d'avance pour vos contributions.

zOrg2net
7OuNet
Le dicton du jour: Assiter un criminel avant qu'il ne soit arrêté, c'est
être son complice. Assiter un criminel après qu'il soit arrêté, c'est être
son avocat.






Avatar
jerome crevecoeur
1)Soit tu peux ouvrir ton formulaire calendrier en modal (dans les
propriétés du formulaire et le code suivant l'ouverture du calendrier
attendra la fermeture de celui ci


2)Ou quelquechose de moins propre:

While Currentproject.allforms("FormCalendrier").isloaded = true
Doevents
Wend


cordialement
Ok je comprend mieux!
Et le comportement d'access est normal. Le fait d'ouvrir ton calendrier
n'arrête pas pour autant le déroulement de la suite de ta procédu re. Ce
qui explique le (non) résultat.
J'ai déjà eu a faire a ce comportement mais c'était pour l'execut ion
d'un batch sous dos et il fallait que j'attende que le batch soit
terminé pour continuer ma procédure.
Regarde plus haut dans les post il y a, je crois, un post faisant
référence à l'ouverture d'un formulaire par un autre pour ensuite
recuperer des date de début et de fin de période. C'est peut être une
piste ......
bon appétit !
@+


Salut Fabien,
Hé oui! Après les soucis du calendrier, voici d'autres soucis
imprévus. Pourtant on dit toujours que les soucis sont de Lyon. C'es t
même pas vrai!!

Voici le code incriminé:

Private Sub Date_Retour_prevu_ES_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.Date_Retour_prevu_ES.Name
If Me!Date_Retour_prevu_ES < Me!Date_Sortie_ES Then
MsgBox "Cette date n'est pas valide, elle est inférieure à la
date de sortie." & Chr(10) & "Veuillez recommencer votre saisie."
Me!Date_Retour_prevu_ES = Null
Me!Date_Retour_prevu_ES.SetFocus
ElseIf Me!Date_Retour_prevu_ES - Me!Date_Sortie_ES < 7 Then
MsgBox "La date saisie doit correspondre à minima, à une
semaine" & Chr(10) _
& "après la date de sortie. Veuillez recommencez votre saisi e!"
Me!Date_Retour_prevu_ES = Null
Me!Date_Retour_prevu_ES.SetFocus
End If
If IsDate(Date_Sortie_ES) And Not
IsDate(Date_Retour_reelle_ES) Then
Disponible_matos = False
End If
Me!Reglement_verse_ES.SetFocus
Refresh
Exit Sub

Err_Calendrier:
If Err.Number = 2452 Then
Forms("calendrier").Caption = Me.Name & _
"!" & Me.Date_Retour_prevu_ES.Name
Else
Forms("calendrier").Caption = Me.Parent.Name & _
"!" & Me.Name & "!" & Me.Date_Retour_prevu_ES.Name
End If
Resume Next
End Sub

et donc comme je le disais les tests sont exécutés avant qu'il n'y ai
une date dans le contrôle adéquat.

zOr2net


Salut a toi zOrg2net
Alors encore avec ton calendrier ? ;-)
Ai je bien compris to soucis ?
Une zone texte. Tu fais un double clic. Sur cet évènement tu acti ve
le controle calendrier.
Aprés séléction de la date, tu retournes la valeur dans la zone
texte. Et là tu ne peux ta controler ta date ?
Est il possible de voir le code que tu utilises ?




Ave @ tous,

Me voici confronté à un nouveau problème.

Donc, dans un sous formulaire, je saisie des dates grâce au contrô le
calendrier. Les évènements double clic des champs texte qui doiv ent
recevoir les valeurs m'ouvre le calendrier et ils se mettent à jou r
avec les dates sélectionnées. J'ai besoin de faire des tests de
validité sur ces dates et c'est là que ca se corse. Je me suis
aperçu que mes tests étaient lancés avant que les contrôles ne
recoivent la date. Conclusion, mes tests ne servent à rien, puisqu e
la date n'est pas encore validée. J'ai mis mes tests dans tous les
évènements possible, même sur perte de focus et ça ne marche pas.
J'ai mis des pauses avec sSleep(cTIME), ça ne donne rien. Les test s
sont lancés avant même que le calendrier ne soit fermé.

Quelqu'un qui a peut-être déjà eu ce petit soucis, voudra-t-il
partager sa solution avec moi ??

Merci d'avance pour vos contributions.

zOrg2net
7OuNet
Le dicton du jour: Assiter un criminel avant qu'il ne soit arrêté ,
c'est être son complice. Assiter un criminel après qu'il soit
arrêté, c'est être son avocat.








Avatar
zOrg2net
Bonjour jerome crevecoeur,

Mon formulaire calendrier est déjà en fenêtre modale et indépendante, par
contre ton petit code pas propre, me bloque bien la procédure tant que le
calendrier n'est pas fermé. C'est exactement ce que je voulais. Alors...
Adopté à l'unanimité.
Mais pourquoi dis-tu qu'il n'est pas propre? Cela pourrait-il générer des
bugs ou n'est-ce qu'une question d'esthétisme ??

Merci beaucoup et bon appétit

zOrg2net


1)Soit tu peux ouvrir ton formulaire calendrier en modal (dans les
propriétés du formulaire et le code suivant l'ouverture du calendrier
attendra la fermeture de celui ci


2)Ou quelquechose de moins propre:

While Currentproject.allforms("FormCalendrier").isloaded = true
Doevents
Wend


cordialement
Ok je comprend mieux!
Et le comportement d'access est normal. Le fait d'ouvrir ton calendrier
n'arrête pas pour autant le déroulement de la suite de ta procédure. Ce
qui explique le (non) résultat.
J'ai déjà eu a faire a ce comportement mais c'était pour l'execution
d'un batch sous dos et il fallait que j'attende que le batch soit
terminé pour continuer ma procédure.
Regarde plus haut dans les post il y a, je crois, un post faisant
référence à l'ouverture d'un formulaire par un autre pour ensuite
recuperer des date de début et de fin de période. C'est peut être une
piste ......
bon appétit !
@+


Salut Fabien,
Hé oui! Après les soucis du calendrier, voici d'autres soucis
imprévus. Pourtant on dit toujours que les soucis sont de Lyon. C'est
même pas vrai!!

Voici le code incriminé:

Private Sub Date_Retour_prevu_ES_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.Date_Retour_prevu_ES.Name
If Me!Date_Retour_prevu_ES < Me!Date_Sortie_ES Then
MsgBox "Cette date n'est pas valide, elle est inférieure à la
date de sortie." & Chr(10) & "Veuillez recommencer votre saisie."
Me!Date_Retour_prevu_ES = Null
Me!Date_Retour_prevu_ES.SetFocus
ElseIf Me!Date_Retour_prevu_ES - Me!Date_Sortie_ES < 7 Then
MsgBox "La date saisie doit correspondre à minima, à une
semaine" & Chr(10) _
& "après la date de sortie. Veuillez recommencez votre saisie!"
Me!Date_Retour_prevu_ES = Null
Me!Date_Retour_prevu_ES.SetFocus
End If
If IsDate(Date_Sortie_ES) And Not
IsDate(Date_Retour_reelle_ES) Then
Disponible_matos = False
End If
Me!Reglement_verse_ES.SetFocus
Refresh
Exit Sub

Err_Calendrier:
If Err.Number = 2452 Then
Forms("calendrier").Caption = Me.Name & _
"!" & Me.Date_Retour_prevu_ES.Name
Else
Forms("calendrier").Caption = Me.Parent.Name & _
"!" & Me.Name & "!" & Me.Date_Retour_prevu_ES.Name
End If
Resume Next
End Sub

et donc comme je le disais les tests sont exécutés avant qu'il n'y ai
une date dans le contrôle adéquat.

zOr2net


Salut a toi zOrg2net
Alors encore avec ton calendrier ? ;-)
Ai je bien compris to soucis ?
Une zone texte. Tu fais un double clic. Sur cet évènement tu active
le controle calendrier.
Aprés séléction de la date, tu retournes la valeur dans la zone
texte. Et là tu ne peux ta controler ta date ?
Est il possible de voir le code que tu utilises ?




Ave @ tous,

Me voici confronté à un nouveau problème.

Donc, dans un sous formulaire, je saisie des dates grâce au contrôle
calendrier. Les évènements double clic des champs texte qui doivent
recevoir les valeurs m'ouvre le calendrier et ils se mettent à jour
avec les dates sélectionnées. J'ai besoin de faire des tests de
validité sur ces dates et c'est là que ca se corse. Je me suis
aperçu que mes tests étaient lancés avant que les contrôles ne
recoivent la date. Conclusion, mes tests ne servent à rien, puisque
la date n'est pas encore validée. J'ai mis mes tests dans tous les
évènements possible, même sur perte de focus et ça ne marche pas.
J'ai mis des pauses avec sSleep(cTIME), ça ne donne rien. Les tests
sont lancés avant même que le calendrier ne soit fermé.

Quelqu'un qui a peut-être déjà eu ce petit soucis, voudra-t-il
partager sa solution avec moi ??

Merci d'avance pour vos contributions.

zOrg2net
7OuNet
Le dicton du jour: Assiter un criminel avant qu'il ne soit arrêté,
c'est être son complice. Assiter un criminel après qu'il soit
arrêté, c'est être son avocat.












Avatar
zOrg2net
Je vais regarder ce post, ça pourrait servir. J'ai eu satisfaction grâce à
jerome crevecoeur, qui m'a donné un petit code pas propre, mais qui marche
bien. Regarde la réponse, ça pourrait aider un jour.

zOrg2net


Ok je comprend mieux!
Et le comportement d'access est normal. Le fait d'ouvrir ton calendrier
n'arrête pas pour autant le déroulement de la suite de ta procédure. Ce
qui explique le (non) résultat.
J'ai déjà eu a faire a ce comportement mais c'était pour l'execution
d'un batch sous dos et il fallait que j'attende que le batch soit
terminé pour continuer ma procédure.
Regarde plus haut dans les post il y a, je crois, un post faisant
référence à l'ouverture d'un formulaire par un autre pour ensuite
recuperer des date de début et de fin de période. C'est peut être une
piste ......
bon appétit !
@+


Salut Fabien,
Hé oui! Après les soucis du calendrier, voici d'autres soucis imprévus.
Pourtant on dit toujours que les soucis sont de Lyon. C'est même pas vrai!!

Voici le code incriminé:

Private Sub Date_Retour_prevu_ES_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.Date_Retour_prevu_ES.Name

If Me!Date_Retour_prevu_ES < Me!Date_Sortie_ES Then
MsgBox "Cette date n'est pas valide, elle est inférieure à la date
de sortie." & Chr(10) & "Veuillez recommencer votre saisie."
Me!Date_Retour_prevu_ES = Null
Me!Date_Retour_prevu_ES.SetFocus
ElseIf Me!Date_Retour_prevu_ES - Me!Date_Sortie_ES < 7 Then
MsgBox "La date saisie doit correspondre à minima, à une semaine" &
Chr(10) _
& "après la date de sortie. Veuillez recommencez votre saisie!"
Me!Date_Retour_prevu_ES = Null
Me!Date_Retour_prevu_ES.SetFocus
End If

If IsDate(Date_Sortie_ES) And Not IsDate(Date_Retour_reelle_ES) Then
Disponible_matos = False
End If

Me!Reglement_verse_ES.SetFocus
Refresh
Exit Sub

Err_Calendrier:
If Err.Number = 2452 Then
Forms("calendrier").Caption = Me.Name & _
"!" & Me.Date_Retour_prevu_ES.Name
Else
Forms("calendrier").Caption = Me.Parent.Name & _
"!" & Me.Name & "!" & Me.Date_Retour_prevu_ES.Name
End If
Resume Next
End Sub

et donc comme je le disais les tests sont exécutés avant qu'il n'y ai une
date dans le contrôle adéquat.

zOr2net


Salut a toi zOrg2net
Alors encore avec ton calendrier ? ;-)
Ai je bien compris to soucis ?
Une zone texte. Tu fais un double clic. Sur cet évènement tu active le
controle calendrier.
Aprés séléction de la date, tu retournes la valeur dans la zone texte.
Et là tu ne peux ta controler ta date ?
Est il possible de voir le code que tu utilises ?


Ave @ tous,

Me voici confronté à un nouveau problème.

Donc, dans un sous formulaire, je saisie des dates grâce au contrôle
calendrier. Les évènements double clic des champs texte qui doivent recevoir
les valeurs m'ouvre le calendrier et ils se mettent à jour avec les dates
sélectionnées. J'ai besoin de faire des tests de validité sur ces dates et
c'est là que ca se corse. Je me suis aperçu que mes tests étaient lancés
avant que les contrôles ne recoivent la date. Conclusion, mes tests ne
servent à rien, puisque la date n'est pas encore validée. J'ai mis mes tests
dans tous les évènements possible, même sur perte de focus et ça ne marche
pas. J'ai mis des pauses avec sSleep(cTIME), ça ne donne rien. Les tests sont
lancés avant même que le calendrier ne soit fermé.

Quelqu'un qui a peut-être déjà eu ce petit soucis, voudra-t-il partager sa
solution avec moi ??

Merci d'avance pour vos contributions.

zOrg2net
7OuNet
Le dicton du jour: Assiter un criminel avant qu'il ne soit arrêté, c'est
être son complice. Assiter un criminel après qu'il soit arrêté, c'est être
son avocat.









Avatar
jerome crevecoeur
effectivement en vb6, le modal marche très bien en msaccess un peu moin s...

donc recours au code qui par souci d'esthétisme voir de philosophie me
choque un peu mais faute de mieux...



Bonjour jerome crevecoeur,

Mon formulaire calendrier est déjà en fenêtre modale et indépen dante, par
contre ton petit code pas propre, me bloque bien la procédure tant qu e le
calendrier n'est pas fermé. C'est exactement ce que je voulais. Alors ...
Adopté à l'unanimité.
Mais pourquoi dis-tu qu'il n'est pas propre? Cela pourrait-il génér er des
bugs ou n'est-ce qu'une question d'esthétisme ??

Merci beaucoup et bon appétit

zOrg2net


1)Soit tu peux ouvrir ton formulaire calendrier en modal (dans les
propriétés du formulaire et le code suivant l'ouverture du calendr ier
attendra la fermeture de celui ci


2)Ou quelquechose de moins propre:

While Currentproject.allforms("FormCalendrier").isloaded = true
Doevents
Wend


cordialement
Ok je comprend mieux!
Et le comportement d'access est normal. Le fait d'ouvrir ton calendri er
n'arrête pas pour autant le déroulement de la suite de ta procé dure. Ce
qui explique le (non) résultat.
J'ai déjà eu a faire a ce comportement mais c'était pour l'exec ution
d'un batch sous dos et il fallait que j'attende que le batch soit
terminé pour continuer ma procédure.
Regarde plus haut dans les post il y a, je crois, un post faisant
référence à l'ouverture d'un formulaire par un autre pour ensui te
recuperer des date de début et de fin de période. C'est peut êt re une
piste ......
bon appétit !
@+


Salut Fabien,
Hé oui! Après les soucis du calendrier, voici d'autres soucis
imprévus. Pourtant on dit toujours que les soucis sont de Lyon. C' est
même pas vrai!!

Voici le code incriminé:

Private Sub Date_Retour_prevu_ES_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.Date_Retour_prevu_ES.Name
If Me!Date_Retour_prevu_ES < Me!Date_Sortie_ES Then
MsgBox "Cette date n'est pas valide, elle est inférieure à la
date de sortie." & Chr(10) & "Veuillez recommencer votre saisie."
Me!Date_Retour_prevu_ES = Null
Me!Date_Retour_prevu_ES.SetFocus
ElseIf Me!Date_Retour_prevu_ES - Me!Date_Sortie_ES < 7 Then
MsgBox "La date saisie doit correspondre à minima, à une
semaine" & Chr(10) _
& "après la date de sortie. Veuillez recommencez votre sai sie!"
Me!Date_Retour_prevu_ES = Null
Me!Date_Retour_prevu_ES.SetFocus
End If
If IsDate(Date_Sortie_ES) And Not
IsDate(Date_Retour_reelle_ES) Then
Disponible_matos = False
End If
Me!Reglement_verse_ES.SetFocus
Refresh
Exit Sub

Err_Calendrier:
If Err.Number = 2452 Then
Forms("calendrier").Caption = Me.Name & _
"!" & Me.Date_Retour_prevu_ES.Name
Else
Forms("calendrier").Caption = Me.Parent.Name & _
"!" & Me.Name & "!" & Me.Date_Retour_prevu_ES.Name
End If
Resume Next
End Sub

et donc comme je le disais les tests sont exécutés avant qu'il n 'y ai
une date dans le contrôle adéquat.

zOr2net


Salut a toi zOrg2net
Alors encore avec ton calendrier ? ;-)
Ai je bien compris to soucis ?
Une zone texte. Tu fais un double clic. Sur cet évènement tu ac tive
le controle calendrier.
Aprés séléction de la date, tu retournes la valeur dans la zo ne
texte. Et là tu ne peux ta controler ta date ?
Est il possible de voir le code que tu utilises ?
Ave @ tous,

Me voici confronté à un nouveau problème.

Donc, dans un sous formulaire, je saisie des dates grâce au cont rôle
calendrier. Les évènements double clic des champs texte qui do ivent
recevoir les valeurs m'ouvre le calendrier et ils se mettent à j our
avec les dates sélectionnées. J'ai besoin de faire des tests d e
validité sur ces dates et c'est là que ca se corse. Je me suis
aperçu que mes tests étaient lancés avant que les contrôle s ne
recoivent la date. Conclusion, mes tests ne servent à rien, puis que
la date n'est pas encore validée. J'ai mis mes tests dans tous l es
évènements possible, même sur perte de focus et ça ne marc he pas.
J'ai mis des pauses avec sSleep(cTIME), ça ne donne rien. Les te sts
sont lancés avant même que le calendrier ne soit fermé.

Quelqu'un qui a peut-être déjà eu ce petit soucis, voudra-t- il
partager sa solution avec moi ??

Merci d'avance pour vos contributions.

zOrg2net
7OuNet
Le dicton du jour: Assiter un criminel avant qu'il ne soit arrêt é,
c'est être son complice. Assiter un criminel après qu'il soit
arrêté, c'est être son avocat.













Avatar
Fabien
Vu
Bon week !
Je vais regarder ce post, ça pourrait servir. J'ai eu satisfaction grâce à
jerome crevecoeur, qui m'a donné un petit code pas propre, mais qui marche
bien. Regarde la réponse, ça pourrait aider un jour.

zOrg2net


Ok je comprend mieux!
Et le comportement d'access est normal. Le fait d'ouvrir ton calendrier
n'arrête pas pour autant le déroulement de la suite de ta procédure. Ce
qui explique le (non) résultat.
J'ai déjà eu a faire a ce comportement mais c'était pour l'execution
d'un batch sous dos et il fallait que j'attende que le batch soit
terminé pour continuer ma procédure.
Regarde plus haut dans les post il y a, je crois, un post faisant
référence à l'ouverture d'un formulaire par un autre pour ensuite
recuperer des date de début et de fin de période. C'est peut être une
piste ......
bon appétit !
@+


Salut Fabien,
Hé oui! Après les soucis du calendrier, voici d'autres soucis imprévus.
Pourtant on dit toujours que les soucis sont de Lyon. C'est même pas vrai!!

Voici le code incriminé:

Private Sub Date_Retour_prevu_ES_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.Date_Retour_prevu_ES.Name

If Me!Date_Retour_prevu_ES < Me!Date_Sortie_ES Then
MsgBox "Cette date n'est pas valide, elle est inférieure à la date
de sortie." & Chr(10) & "Veuillez recommencer votre saisie."
Me!Date_Retour_prevu_ES = Null
Me!Date_Retour_prevu_ES.SetFocus
ElseIf Me!Date_Retour_prevu_ES - Me!Date_Sortie_ES < 7 Then
MsgBox "La date saisie doit correspondre à minima, à une semaine" &
Chr(10) _
& "après la date de sortie. Veuillez recommencez votre saisie!"
Me!Date_Retour_prevu_ES = Null
Me!Date_Retour_prevu_ES.SetFocus
End If

If IsDate(Date_Sortie_ES) And Not IsDate(Date_Retour_reelle_ES) Then
Disponible_matos = False
End If

Me!Reglement_verse_ES.SetFocus
Refresh
Exit Sub

Err_Calendrier:
If Err.Number = 2452 Then
Forms("calendrier").Caption = Me.Name & _
"!" & Me.Date_Retour_prevu_ES.Name
Else
Forms("calendrier").Caption = Me.Parent.Name & _
"!" & Me.Name & "!" & Me.Date_Retour_prevu_ES.Name
End If
Resume Next
End Sub

et donc comme je le disais les tests sont exécutés avant qu'il n'y ai une
date dans le contrôle adéquat.

zOr2net


Salut a toi zOrg2net
Alors encore avec ton calendrier ? ;-)
Ai je bien compris to soucis ?
Une zone texte. Tu fais un double clic. Sur cet évènement tu active le
controle calendrier.
Aprés séléction de la date, tu retournes la valeur dans la zone texte.
Et là tu ne peux ta controler ta date ?
Est il possible de voir le code que tu utilises ?


Ave @ tous,

Me voici confronté à un nouveau problème.

Donc, dans un sous formulaire, je saisie des dates grâce au contrôle
calendrier. Les évènements double clic des champs texte qui doivent recevoir
les valeurs m'ouvre le calendrier et ils se mettent à jour avec les dates
sélectionnées. J'ai besoin de faire des tests de validité sur ces dates et
c'est là que ca se corse. Je me suis aperçu que mes tests étaient lancés
avant que les contrôles ne recoivent la date. Conclusion, mes tests ne
servent à rien, puisque la date n'est pas encore validée. J'ai mis mes tests
dans tous les évènements possible, même sur perte de focus et ça ne marche
pas. J'ai mis des pauses avec sSleep(cTIME), ça ne donne rien. Les tests sont
lancés avant même que le calendrier ne soit fermé.

Quelqu'un qui a peut-être déjà eu ce petit soucis, voudra-t-il partager sa
solution avec moi ??

Merci d'avance pour vos contributions.

zOrg2net
7OuNet
Le dicton du jour: Assiter un criminel avant qu'il ne soit arrêté, c'est
être son complice. Assiter un criminel après qu'il soit arrêté, c'est être
son avocat.










Avatar
Eric
Bonjour,

Bien que tu aies résolu le problème, juste une petite remarque :
Les DoEvents sont consommateur de ressources.
Une autre solution pourrait être : Passer en argument d'ouverture du
calendrier les noms des contrôles et ouvrir Calendrier en
modal(acDialog) afin de permettre le contrôle de date.

Dans l'évènement Dbl_Click du controle Date_Retour_prevu_ES:
Private Sub Date_Retour_prevu_ES_DblClick(Cancel As Integer)
On Error GoTo Err_Calendrier ' gestion d'erreur simplifiée
' Passage des arguments d'ouverture du form Calendrier
' et ouverture en modal.
DoCmd.OpenForm "calendrier", , , , , acDialog, Me.Parent.Name & _
"!" & Me.Name & "!" & Me.Date_Retour_prevu_ES.Name
If Me!Date_Retour_prevu_ES < Me!Date_Sortie_ES Then
MsgBox "Cette date n'est pas valide, elle est inférieure à la
date de sortie." & Chr(10) & "Veuillez recommencer votre saisie."
'Cancel = True ' Voir si nécessaire
Me!Date_Retour_prevu_ES = Null
Else
'suite traitement
End If


Sur l'évènement Load() du formulaire Calendrier, mettre :

Private Sub Form_Load()
'Me.Calendar0.Value = Date
' Test de OpenArgs pour pouvoir utiliser le calendrier
' indépendamment.
Me.Caption = IIf(Not IsNull(Me.OpenArgs), Me.OpenArgs, _
Me.Caption)
End Sub

Bonjour jerome crevecoeur,

Mon formulaire calendrier est déjà en fenêtre modale et indépendante, par
contre ton petit code pas propre, me bloque bien la procédure tant que le
calendrier n'est pas fermé. C'est exactement ce que je voulais. Alors...
Adopté à l'unanimité.
Mais pourquoi dis-tu qu'il n'est pas propre? Cela pourrait-il générer des
bugs ou n'est-ce qu'une question d'esthétisme ??

Merci beaucoup et bon appétit

zOrg2net



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