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

Interdir la saisie d'une date déja présente

8 réponses
Avatar
John
Bonjour,

Dans un formulaire en mode continu "côté plusieurs" je saisie des dates par
client lorsque je travaille sur la fiche d'un client je voudrai interdir la
saisie d'une date dans le sous formulaire si elle est inférieure à
l'enregistrement précédent lié à ce client avec en retour une boite qui me
préviendrait "La date doit être supérieur à l'enregistrement précédent par
exemple.

exemple client N° 237
01/01/07
15/02/07
22/08/07
20/08/07 = message impossible de valider cette date.

Il y a plusieurs clients donc cette date doit pouvoir être utilisée pour
eux, cette action ne doit s'appliquer seulement par fiche.

Vous comprenez ?
Merci d'avance.
--
John.

8 réponses

Avatar
Thierry (ze Titi)
Bonjour John !

Dans un formulaire en mode continu "côté plusieurs" je saisie des dates par
client lorsque je travaille sur la fiche d'un client je voudrai interdir la
saisie d'une date dans le sous formulaire si elle est inférieure à
l'enregistrement précédent lié à ce client avec en retour une boite qui me
préviendrait "La date doit être supérieur à l'enregistrement précédent par
exemple.

exemple client N° 237
01/01/07
15/02/07
22/08/07
20/08/07 = message impossible de valider cette date.

Il y a plusieurs clients donc cette date doit pouvoir être utilisée pour
eux, cette action ne doit s'appliquer seulement par fiche.


Dans l'évènement "Avant mise à jour" de ton champ date:

If DMax("leChampDate","laTable","[N°Client]=" & [n°Client])>leChampDate Then
MsgBox "Impossible de valider cette date...",vbExclamation+vbOkOnly
Cancel=True
End If

A tester et adapter, bien entendu...

--
Cordialement,
Thierry

tout pour Access :
http://www.mpfa.info

Avatar
John
Merci pour la réponse, mais ça ne fonctionne pas je ne comprend pas, j'ai la
fenêtre déboguage qui apparait.

Si tu as une solution ?
--
John.



Bonjour John !

Dans un formulaire en mode continu "côté plusieurs" je saisie des dates par
client lorsque je travaille sur la fiche d'un client je voudrai interdir la
saisie d'une date dans le sous formulaire si elle est inférieure à
l'enregistrement précédent lié à ce client avec en retour une boite qui me
préviendrait "La date doit être supérieur à l'enregistrement précédent par
exemple.

exemple client N° 237
01/01/07
15/02/07
22/08/07
20/08/07 = message impossible de valider cette date.

Il y a plusieurs clients donc cette date doit pouvoir être utilisée pour
eux, cette action ne doit s'appliquer seulement par fiche.


Dans l'évènement "Avant mise à jour" de ton champ date:

If DMax("leChampDate","laTable","[N°Client]=" & [n°Client])>leChampDate Then
MsgBox "Impossible de valider cette date...",vbExclamation+vbOkOnly
Cancel=True
End If

A tester et adapter, bien entendu...

--
Cordialement,
Thierry

tout pour Access :
http://www.mpfa.info






Avatar
Eric
Bonjour,

Essaies:
If DMax("[leChampDate]","[LaTable]","[N°Client]=" &
[N°Client])>CDate(leChampDate) Then
MsgBox "Impossible de valider cette date...",vbExclamation+vbOkOnly
Cancel=True
End If

Sous réserve que leChampDate dans le sous-form contienne une valeur
assimilable à une date.
Noms des champs & table à adapter. Les [ & ] dans le cas où les noms
contiennent des espaces ou autres signes particuliers.

Merci pour la réponse, mais ça ne fonctionne pas je ne comprend pas, j'ai la
fenêtre déboguage qui apparait.

Si tu as une solution ?


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

Avatar
John
Merci, mais ça ne fonctionne toujours pas, une boite apparait elle écrit
(type de données incompatible .......

Le champ client pour moi est du texte, c'est peut être la le problème ?
--
John.



Bonjour,

Essaies:
If DMax("[leChampDate]","[LaTable]","[N°Client]=" &
[N°Client])>CDate(leChampDate) Then
MsgBox "Impossible de valider cette date...",vbExclamation+vbOkOnly
Cancel=True
End If

Sous réserve que leChampDate dans le sous-form contienne une valeur
assimilable à une date.
Noms des champs & table à adapter. Les [ & ] dans le cas où les noms
contiennent des espaces ou autres signes particuliers.

Merci pour la réponse, mais ça ne fonctionne pas je ne comprend pas, j'ai la
fenêtre déboguage qui apparait.

Si tu as une solution ?


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




Avatar
Eric
re,

Si N°Client est de type texte, alors:
If DMax("[leChampDate]","[LaTable]","[N°Client]='" & [N°Client] &
"'")>CDate(leChampDate) Then
MsgBox "Impossible de valider cette date...",vbExclamation+vbOkOnly
Cancel=True
End If

Merci, mais ça ne fonctionne toujours pas, une boite apparait elle écrit
(type de données incompatible .......

Le champ client pour moi est du texte, c'est peut être la le problème ?


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

Avatar
John
Merci, c'est bon.

@+
--
John.



re,

Si N°Client est de type texte, alors:
If DMax("[leChampDate]","[LaTable]","[N°Client]='" & [N°Client] &
"'")>CDate(leChampDate) Then
MsgBox "Impossible de valider cette date...",vbExclamation+vbOkOnly
Cancel=True
End If

Merci, mais ça ne fonctionne toujours pas, une boite apparait elle écrit
(type de données incompatible .......

Le champ client pour moi est du texte, c'est peut être la le problème ?


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




Avatar
John
Bonsoir,

Avec ce code ça fonctionne parfaitement bien, mais serait-il possible
d'ajouter un contrôle pour calculer l'écart entre deux dates en ajoutant un
élement supplémentaire.

Supposons :

Une vache vêle
Champ : Animal "texte"
Madate
La table "reproduction"
code = "ve"

Pour calculer l'écart entre le vêlage précédent et celui-ci de maniére à
mettre un frein à la saisie, en effet une erreur et possible une vache ne pas
vêler à moins de 300 jours du dernier vêlage par exemple.

Merci d'avance.


--
John.



Merci, c'est bon.

@+
--
John.



re,

Si N°Client est de type texte, alors:
If DMax("[leChampDate]","[LaTable]","[N°Client]='" & [N°Client] &
"'")>CDate(leChampDate) Then
MsgBox "Impossible de valider cette date...",vbExclamation+vbOkOnly
Cancel=True
End If

Merci, mais ça ne fonctionne toujours pas, une boite apparait elle écrit
(type de données incompatible .......

Le champ client pour moi est du texte, c'est peut être la le problème ?


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






Avatar
Thierry (ze Titi)
Bonjour John !

Avec ce code ça fonctionne parfaitement bien, mais serait-il possible
d'ajouter un contrôle pour calculer l'écart entre deux dates en ajoutant un
élement supplémentaire.

Supposons :

Une vache vêle
Champ : Animal "texte"
Madate
La table "reproduction"
code = "ve"

Pour calculer l'écart entre le vêlage précédent et celui-ci de maniére à
mettre un frein à la saisie, en effet une erreur et possible une vache ne pas
vêler à moins de 300 jours du dernier vêlage par exemple.
Si j'ai bien compris, le principe reste le même que celui utilisé pour

ton problème précédent sauf que tu vas devoir utiliser la fonction
DateDiff qui te permet de calculer la différence entre 2 dates. Par
contre, je ne sais pas comment tu as construit ton appli et ce que tu
nous décris ne nous permet pas de comprendre comment tu saisis une
reproduction, ou alors je n'ai pas bien saisi ce que tu nous donnes
comme indications.

--
Cordialement,
Thierry

tout pour Access :
http://www.mpfa.info