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

Le
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Thierry (ze Titi)
Le #6336831
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

John
Le #6336731
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






Eric
Le #6336711
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

John
Le #6336701
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




Eric
Le #6336661
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

John
Le #6336651
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




John
Le #6336391
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






Thierry (ze Titi)
Le #6374711
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

Publicité
Poster une réponse
Anonyme