Dans un formulaire, l'utilisateur doit saisir une heure de début et une
heure de fin.
Je voudrais contrôler que l'heure de début n'est pas postérieure à la date
de fin.
Sur l'évènement BeforeUpdate, j'écris un bout de code :
Private Sub R_HDébut_BeforeUpdate(Cancel As Integer)
Dim réponse As Integer
If CDate(Me.R_HDébut) >= CDate(Me.R_HFin) Then
réponse = MsgBox("L'heure de début ne peut être postérieure ou égale
à l'heure de fin !", vbOKOnly, "Contrôle des horaires")
Me!R_HDébut.Undo
End If
End Sub
J'ai aussi des choses à faire sur l'événement AfterUpdate...
Je voudrais qu'Access annule la donnée saisie si elle n'est pas conforme au
test, mais il ne le fait pas...
Je précise que j'utilise la syntaxe de l'aide, et que j'ai aussi essayé
Me.R_HDébut.Undo...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Mario Limoges
Salut Dan, Personellement je revois simplement le focus sur l'heure de fin ..
Me!R_HDébut.Setfocus
"Dan" a écrit dans le message de news: 429f21cb$0$25020$
Bonjour à tous !
Un grand classique, j'imagine...
Dans un formulaire, l'utilisateur doit saisir une heure de début et une heure de fin. Je voudrais contrôler que l'heure de début n'est pas postérieure à la date de fin. Sur l'évènement BeforeUpdate, j'écris un bout de code :
Private Sub R_HDébut_BeforeUpdate(Cancel As Integer) Dim réponse As Integer If CDate(Me.R_HDébut) >= CDate(Me.R_HFin) Then réponse = MsgBox("L'heure de début ne peut être postérieure ou égale à l'heure de fin !", vbOKOnly, "Contrôle des horaires") Me!R_HDébut.Undo End If End Sub
J'ai aussi des choses à faire sur l'événement AfterUpdate... Je voudrais qu'Access annule la donnée saisie si elle n'est pas conforme au test, mais il ne le fait pas... Je précise que j'utilise la syntaxe de l'aide, et que j'ai aussi essayé Me.R_HDébut.Undo...
Merci pour vos contributions !
A+ DAn
Salut Dan,
Personellement je revois simplement le focus sur l'heure de fin ..
Me!R_HDébut.Setfocus
"Dan" <service.informatique@ville-riorges.fr> a écrit dans le message de
news: 429f21cb$0$25020$8fcfb975@news.wanadoo.fr...
Bonjour à tous !
Un grand classique, j'imagine...
Dans un formulaire, l'utilisateur doit saisir une heure de début et une
heure de fin.
Je voudrais contrôler que l'heure de début n'est pas postérieure à la date
de fin.
Sur l'évènement BeforeUpdate, j'écris un bout de code :
Private Sub R_HDébut_BeforeUpdate(Cancel As Integer)
Dim réponse As Integer
If CDate(Me.R_HDébut) >= CDate(Me.R_HFin) Then
réponse = MsgBox("L'heure de début ne peut être postérieure ou
égale à l'heure de fin !", vbOKOnly, "Contrôle des horaires")
Me!R_HDébut.Undo
End If
End Sub
J'ai aussi des choses à faire sur l'événement AfterUpdate...
Je voudrais qu'Access annule la donnée saisie si elle n'est pas conforme
au test, mais il ne le fait pas...
Je précise que j'utilise la syntaxe de l'aide, et que j'ai aussi essayé
Me.R_HDébut.Undo...
Salut Dan, Personellement je revois simplement le focus sur l'heure de fin ..
Me!R_HDébut.Setfocus
"Dan" a écrit dans le message de news: 429f21cb$0$25020$
Bonjour à tous !
Un grand classique, j'imagine...
Dans un formulaire, l'utilisateur doit saisir une heure de début et une heure de fin. Je voudrais contrôler que l'heure de début n'est pas postérieure à la date de fin. Sur l'évènement BeforeUpdate, j'écris un bout de code :
Private Sub R_HDébut_BeforeUpdate(Cancel As Integer) Dim réponse As Integer If CDate(Me.R_HDébut) >= CDate(Me.R_HFin) Then réponse = MsgBox("L'heure de début ne peut être postérieure ou égale à l'heure de fin !", vbOKOnly, "Contrôle des horaires") Me!R_HDébut.Undo End If End Sub
J'ai aussi des choses à faire sur l'événement AfterUpdate... Je voudrais qu'Access annule la donnée saisie si elle n'est pas conforme au test, mais il ne le fait pas... Je précise que j'utilise la syntaxe de l'aide, et que j'ai aussi essayé Me.R_HDébut.Undo...
Merci pour vos contributions !
A+ DAn
Dan
Merci Mario,
Mais dans l'exemple ci-dessous, renvoyer le focus à la zone de texte suivante ne permet pas de contrôler la cohérence des données :
Données d'origine : - début = 18h00 - fin = 19h00
Données modifiées : - début = 20h00 - fin = 19h00
Dans ce cas-là, je voudrais que l'heure de début revienne à la saisie d'origine après le message d'avertissement... Je pourrais le faire avant MAJ de l'enreg, mais j'ai des choses à faire avant... J'ai contourné le problème pour l'instant avec un Sendkeys, mais je ne trouve pas ça d'une élégance folle...
A+ Dan
Merci Mario,
Mais dans l'exemple ci-dessous, renvoyer le focus à la zone de texte
suivante ne permet pas de contrôler la cohérence des données :
Données d'origine :
- début = 18h00
- fin = 19h00
Données modifiées :
- début = 20h00
- fin = 19h00
Dans ce cas-là, je voudrais que l'heure de début revienne à la saisie
d'origine après le message d'avertissement...
Je pourrais le faire avant MAJ de l'enreg, mais j'ai des choses à faire
avant...
J'ai contourné le problème pour l'instant avec un Sendkeys, mais je ne
trouve pas ça d'une élégance folle...
Mais dans l'exemple ci-dessous, renvoyer le focus à la zone de texte suivante ne permet pas de contrôler la cohérence des données :
Données d'origine : - début = 18h00 - fin = 19h00
Données modifiées : - début = 20h00 - fin = 19h00
Dans ce cas-là, je voudrais que l'heure de début revienne à la saisie d'origine après le message d'avertissement... Je pourrais le faire avant MAJ de l'enreg, mais j'ai des choses à faire avant... J'ai contourné le problème pour l'instant avec un Sendkeys, mais je ne trouve pas ça d'une élégance folle...
A+ Dan
DJ
Dan wrote:
Private Sub R_HDébut_BeforeUpdate(Cancel As Integer)
Merci pour vos contributions !
A+ DAn
Ben si ma memoire est bonne c'est a ca qu'il sert le param Cancel
si tes controles detectent un probleme tu ajoute cancel=true te ca annule la mise à jour.
DJ
Dan wrote:
Private Sub R_HDébut_BeforeUpdate(Cancel As Integer)
Merci pour vos contributions !
A+ DAn
Ben si ma memoire est bonne c'est a ca qu'il sert le param Cancel
si tes controles detectent un probleme tu ajoute cancel=true te ca annule la
mise à jour.
Private Sub R_HDébut_BeforeUpdate(Cancel As Integer)
Merci pour vos contributions !
A+ DAn
Ben si ma memoire est bonne c'est a ca qu'il sert le param Cancel
si tes controles detectent un probleme tu ajoute cancel=true te ca annule la mise à jour.
DJ
lectriceNews
Bonjour,
pour apprendre je me permets de poser des questions.
"Dan" a écrit dans le message de news:429f21cb$0$25020$
Bonjour à tous !
Un grand classique, j'imagine...
Dans un formulaire, l'utilisateur doit saisir une heure de début et une heure de fin. Je voudrais contrôler que l'heure de début n'est pas postérieure à la date de fin. Sur l'évènement BeforeUpdate, j'écris un bout de code :
Private Sub R_HDébut_BeforeUpdate(Cancel As Integer) Dim réponse As Integer If CDate(Me.R_HDébut) >= CDate(Me.R_HFin) Then
est-ce que la date est comprise dans le champ heure ? si oui : comment distinguer des heures différentes si on ne retient que la partie date ?
réponse = MsgBox("L'heure de début ne peut être postérieure ou égale
à l'heure de fin !", vbOKOnly, "Contrôle des horaires") Me!R_HDébut.Undo End If End Sub
J'ai aussi des choses à faire sur l'événement AfterUpdate... Je voudrais qu'Access annule la donnée saisie si elle n'est pas conforme au
test, mais il ne le fait pas... Je précise que j'utilise la syntaxe de l'aide, et que j'ai aussi essayé Me.R_HDébut.Undo...
Merci pour vos contributions !
A+ DAn
Lectrice
Bonjour,
pour apprendre je me permets de poser des questions.
"Dan" <service.informatique@ville-riorges.fr> a écrit dans le message de
news:429f21cb$0$25020$8fcfb975@news.wanadoo.fr...
Bonjour à tous !
Un grand classique, j'imagine...
Dans un formulaire, l'utilisateur doit saisir une heure de début et une
heure de fin.
Je voudrais contrôler que l'heure de début n'est pas postérieure à la date
de fin.
Sur l'évènement BeforeUpdate, j'écris un bout de code :
Private Sub R_HDébut_BeforeUpdate(Cancel As Integer)
Dim réponse As Integer
If CDate(Me.R_HDébut) >= CDate(Me.R_HFin) Then
est-ce que la date est comprise dans le champ heure ?
si oui : comment distinguer des heures différentes si on ne retient que la
partie date ?
réponse = MsgBox("L'heure de début ne peut être postérieure ou
égale
à l'heure de fin !", vbOKOnly, "Contrôle des horaires")
Me!R_HDébut.Undo
End If
End Sub
J'ai aussi des choses à faire sur l'événement AfterUpdate...
Je voudrais qu'Access annule la donnée saisie si elle n'est pas conforme
au
test, mais il ne le fait pas...
Je précise que j'utilise la syntaxe de l'aide, et que j'ai aussi essayé
Me.R_HDébut.Undo...
pour apprendre je me permets de poser des questions.
"Dan" a écrit dans le message de news:429f21cb$0$25020$
Bonjour à tous !
Un grand classique, j'imagine...
Dans un formulaire, l'utilisateur doit saisir une heure de début et une heure de fin. Je voudrais contrôler que l'heure de début n'est pas postérieure à la date de fin. Sur l'évènement BeforeUpdate, j'écris un bout de code :
Private Sub R_HDébut_BeforeUpdate(Cancel As Integer) Dim réponse As Integer If CDate(Me.R_HDébut) >= CDate(Me.R_HFin) Then
est-ce que la date est comprise dans le champ heure ? si oui : comment distinguer des heures différentes si on ne retient que la partie date ?
réponse = MsgBox("L'heure de début ne peut être postérieure ou égale
à l'heure de fin !", vbOKOnly, "Contrôle des horaires") Me!R_HDébut.Undo End If End Sub
J'ai aussi des choses à faire sur l'événement AfterUpdate... Je voudrais qu'Access annule la donnée saisie si elle n'est pas conforme au
test, mais il ne le fait pas... Je précise que j'utilise la syntaxe de l'aide, et que j'ai aussi essayé Me.R_HDébut.Undo...