OVH Cloud OVH Cloud

Eviter date 2 x

18 réponses
Avatar
A COSTA
Bonjour,
J'ai une table "tblListeGen" avec les champs "NOM", "LIEU","DEBUT", "FIN" et
"DUREE"
Je remplis la table à partir d'un formulaire "frmDataIntroduction"

Je voudrais éviter d'insérer 2 fois la même date de DEBUT pour le même NOM.

Dans le TextBox "DEBUT"

Private Sub DEBUT_BeforeUpdate(Cancel As Integer)
If DCount("*", "tblListeGen", "DEBUT =" & Me.DEBUT.Value) > 0 Then
MsgBox "La date " & DEBUT & " est déjà inscrite dans ce nom: ",
vbExclamation, "Date de début"
Me.Undo
Cancel = True
End If
End Sub

Mais ça ne marche pas. Il me manque quelque chose pour lier la date debut au
nom.
Quelqu'un(e) peut m'aider, s.v.p.
Merci d'avance
A Costa

10 réponses

1 2
Avatar
ze Titi
Hello A COSTA !

If DCount("*", "tblListeGen", "DEBUT =" & Me.DEBUT.Value & " AND NOM='"
& Me.Nom.Value & "'") > 0 Then

devrait mieux fonctionner.
Dis-nous !

en ce jour mémorable du vendredi 02/02/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour,
J'ai une table "tblListeGen" avec les champs "NOM", "LIEU","DEBUT", "FIN" et
"DUREE"
Je remplis la table à partir d'un formulaire "frmDataIntroduction"

Je voudrais éviter d'insérer 2 fois la même date de DEBUT pour le même NOM.

Dans le TextBox "DEBUT"

Private Sub DEBUT_BeforeUpdate(Cancel As Integer)
If DCount("*", "tblListeGen", "DEBUT =" & Me.DEBUT.Value) > 0 Then
MsgBox "La date " & DEBUT & " est déjà inscrite dans ce nom: ",
vbExclamation, "Date de début"
Me.Undo
Cancel = True
End If
End Sub

Mais ça ne marche pas. Il me manque quelque chose pour lier la date debut au
nom.
Quelqu'un(e) peut m'aider, s.v.p.
Merci d'avance
A Costa


--
Voilou !
Cordialement,

Ze Titi

Avatar
ze Titi
...
Ton code me semble quand même curieux... Que veux-tu faire exactement ?

en ce jour mémorable du vendredi 02/02/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour,
J'ai une table "tblListeGen" avec les champs "NOM", "LIEU","DEBUT", "FIN" et
"DUREE"
Je remplis la table à partir d'un formulaire "frmDataIntroduction"

Je voudrais éviter d'insérer 2 fois la même date de DEBUT pour le même NOM.

Dans le TextBox "DEBUT"

Private Sub DEBUT_BeforeUpdate(Cancel As Integer)
If DCount("*", "tblListeGen", "DEBUT =" & Me.DEBUT.Value) > 0 Then
MsgBox "La date " & DEBUT & " est déjà inscrite dans ce nom: ",
vbExclamation, "Date de début"
Me.Undo
Cancel = True
End If
End Sub

Mais ça ne marche pas. Il me manque quelque chose pour lier la date debut au
nom.
Quelqu'un(e) peut m'aider, s.v.p.
Merci d'avance
A Costa


--
Voilou !
Cordialement,

Ze Titi

Avatar
A COSTA
Re bonjour,
Merci pour la rapidité
j'ai essayé votre votre code mais je n'arriva pas a avoir ce que je veux:

Si quelqu'un est affecté au LIEU "X" du 01/01/07 au 31/01/07 je veux
empêcher l'utilisateur d'insérer la même date (DEBUT) pour éviter d'affecter
la même personne, pendant la même période, à deux ou plus endroits différents.

Le message doit m'indiquer que la date est déjà introduite pour la personne.

Merci encore une fois

....
Ton code me semble quand même curieux... Que veux-tu faire exactement ?

en ce jour mémorable du vendredi 02/02/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour,
J'ai une table "tblListeGen" avec les champs "NOM", "LIEU","DEBUT", "FIN" et
"DUREE"
Je remplis la table à partir d'un formulaire "frmDataIntroduction"

Je voudrais éviter d'insérer 2 fois la même date de DEBUT pour le même NOM.

Dans le TextBox "DEBUT"

Private Sub DEBUT_BeforeUpdate(Cancel As Integer)
If DCount("*", "tblListeGen", "DEBUT =" & Me.DEBUT.Value) > 0 Then
MsgBox "La date " & DEBUT & " est déjà inscrite dans ce nom: ",
vbExclamation, "Date de début"
Me.Undo
Cancel = True
End If
End Sub

Mais ça ne marche pas. Il me manque quelque chose pour lier la date debut au
nom.
Quelqu'un(e) peut m'aider, s.v.p.
Merci d'avance
A Costa


--
Voilou !
Cordialement,

Ze Titi






Avatar
ze Titi
If DCount("*", "tblListeGen", "DEBUT =#" & Me.DEBUT.Value & "# AND NOM
LIKE '" & Me.Nom.Value & "'") > 0 Then

Il faut bien sûr adapter les noms des champs si nécessaire.

Dans ton message
Re bonjour,
Merci pour la rapidité
j'ai essayé votre votre code mais je n'arriva pas a avoir ce que je veux:

Si quelqu'un est affecté au LIEU "X" du 01/01/07 au 31/01/07 je veux
empêcher l'utilisateur d'insérer la même date (DEBUT) pour éviter d'affecter
la même personne, pendant la même période, à deux ou plus endroits
différents.

Le message doit m'indiquer que la date est déjà introduite pour la personne.

Merci encore une fois

....
Ton code me semble quand même curieux... Que veux-tu faire exactement ?

en ce jour mémorable du vendredi 02/02/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour,
J'ai une table "tblListeGen" avec les champs "NOM", "LIEU","DEBUT", "FIN"
et "DUREE"
Je remplis la table à partir d'un formulaire "frmDataIntroduction"

Je voudrais éviter d'insérer 2 fois la même date de DEBUT pour le même NOM.

Dans le TextBox "DEBUT"

Private Sub DEBUT_BeforeUpdate(Cancel As Integer)
If DCount("*", "tblListeGen", "DEBUT =" & Me.DEBUT.Value) > 0 Then
MsgBox "La date " & DEBUT & " est déjà inscrite dans ce nom: ",
vbExclamation, "Date de début"
Me.Undo
Cancel = True
End If
End Sub

Mais ça ne marche pas. Il me manque quelque chose pour lier la date debut
au nom.
Quelqu'un(e) peut m'aider, s.v.p.
Merci d'avance
A Costa


--
Voilou !
Cordialement,

Ze Titi






--
Voilou !
Cordialement,

Ze Titi



Avatar
A COSTA
Je continue à avoir la possibilité d'inserer la même date 2x pour la même
personne.
Peut etre qu'il y a un autre moyen, mais je ne m'en sort pas.
Merci


If DCount("*", "tblListeGen", "DEBUT =#" & Me.DEBUT.Value & "# AND NOM
LIKE '" & Me.Nom.Value & "'") > 0 Then

Il faut bien sûr adapter les noms des champs si nécessaire.

Dans ton message
Re bonjour,
Merci pour la rapidité
j'ai essayé votre votre code mais je n'arriva pas a avoir ce que je veux:

Si quelqu'un est affecté au LIEU "X" du 01/01/07 au 31/01/07 je veux
empêcher l'utilisateur d'insérer la même date (DEBUT) pour éviter d'affecter
la même personne, pendant la même période, à deux ou plus endroits
différents.

Le message doit m'indiquer que la date est déjà introduite pour la personne.

Merci encore une fois

....
Ton code me semble quand même curieux... Que veux-tu faire exactement ?

en ce jour mémorable du vendredi 02/02/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour,
J'ai une table "tblListeGen" avec les champs "NOM", "LIEU","DEBUT", "FIN"
et "DUREE"
Je remplis la table à partir d'un formulaire "frmDataIntroduction"

Je voudrais éviter d'insérer 2 fois la même date de DEBUT pour le même NOM.

Dans le TextBox "DEBUT"

Private Sub DEBUT_BeforeUpdate(Cancel As Integer)
If DCount("*", "tblListeGen", "DEBUT =" & Me.DEBUT.Value) > 0 Then
MsgBox "La date " & DEBUT & " est déjà inscrite dans ce nom: ",
vbExclamation, "Date de début"
Me.Undo
Cancel = True
End If
End Sub

Mais ça ne marche pas. Il me manque quelque chose pour lier la date debut
au nom.
Quelqu'un(e) peut m'aider, s.v.p.
Merci d'avance
A Costa


--
Voilou !
Cordialement,

Ze Titi






--
Voilou !
Cordialement,

Ze Titi








Avatar
ze Titi
As-tu essayé de mettre le code plutôt sur l'évènement "Avant mise à
jour" du formulaire ? Je suis persuadé que ça ira beaucoup mieux de
cette façon...

Dis-nous !

Dans ton message
Je continue à avoir la possibilité d'inserer la même date 2x pour la même
personne.
Peut etre qu'il y a un autre moyen, mais je ne m'en sort pas.
Merci


If DCount("*", "tblListeGen", "DEBUT =#" & Me.DEBUT.Value & "# AND NOM
LIKE '" & Me.Nom.Value & "'") > 0 Then

Il faut bien sûr adapter les noms des champs si nécessaire.

Dans ton message
Re bonjour,
Merci pour la rapidité
j'ai essayé votre votre code mais je n'arriva pas a avoir ce que je veux:

Si quelqu'un est affecté au LIEU "X" du 01/01/07 au 31/01/07 je veux
empêcher l'utilisateur d'insérer la même date (DEBUT) pour éviter
d'affecter la même personne, pendant la même période, à deux ou plus
endroits différents.

Le message doit m'indiquer que la date est déjà introduite pour la
personne.

Merci encore une fois

....
Ton code me semble quand même curieux... Que veux-tu faire exactement ?

en ce jour mémorable du vendredi 02/02/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour,
J'ai une table "tblListeGen" avec les champs "NOM", "LIEU","DEBUT", "FIN"
et "DUREE"
Je remplis la table à partir d'un formulaire "frmDataIntroduction"

Je voudrais éviter d'insérer 2 fois la même date de DEBUT pour le même
NOM.

Dans le TextBox "DEBUT"

Private Sub DEBUT_BeforeUpdate(Cancel As Integer)
If DCount("*", "tblListeGen", "DEBUT =" & Me.DEBUT.Value) > 0 Then
MsgBox "La date " & DEBUT & " est déjà inscrite dans ce nom: ",
vbExclamation, "Date de début"
Me.Undo
Cancel = True
End If
End Sub

Mais ça ne marche pas. Il me manque quelque chose pour lier la date debut
au nom.
Quelqu'un(e) peut m'aider, s.v.p.
Merci d'avance
A Costa


--
Voilou !
Cordialement,

Ze Titi






--
Voilou !
Cordialement,

Ze Titi






--
Voilou !
Cordialement,

Ze Titi





Avatar
A COSTA
Oui, j'ai essayé. C'es la mm chose
Je vais continuer à faire des testes
Merci encore une fois


As-tu essayé de mettre le code plutôt sur l'évènement "Avant mise à
jour" du formulaire ? Je suis persuadé que ça ira beaucoup mieux de
cette façon...

Dis-nous !

Dans ton message
Je continue à avoir la possibilité d'inserer la même date 2x pour la même
personne.
Peut etre qu'il y a un autre moyen, mais je ne m'en sort pas.
Merci


If DCount("*", "tblListeGen", "DEBUT =#" & Me.DEBUT.Value & "# AND NOM
LIKE '" & Me.Nom.Value & "'") > 0 Then

Il faut bien sûr adapter les noms des champs si nécessaire.

Dans ton message
Re bonjour,
Merci pour la rapidité
j'ai essayé votre votre code mais je n'arriva pas a avoir ce que je veux:

Si quelqu'un est affecté au LIEU "X" du 01/01/07 au 31/01/07 je veux
empêcher l'utilisateur d'insérer la même date (DEBUT) pour éviter
d'affecter la même personne, pendant la même période, à deux ou plus
endroits différents.

Le message doit m'indiquer que la date est déjà introduite pour la
personne.

Merci encore une fois

....
Ton code me semble quand même curieux... Que veux-tu faire exactement ?

en ce jour mémorable du vendredi 02/02/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour,
J'ai une table "tblListeGen" avec les champs "NOM", "LIEU","DEBUT", "FIN"
et "DUREE"
Je remplis la table à partir d'un formulaire "frmDataIntroduction"

Je voudrais éviter d'insérer 2 fois la même date de DEBUT pour le même
NOM.

Dans le TextBox "DEBUT"

Private Sub DEBUT_BeforeUpdate(Cancel As Integer)
If DCount("*", "tblListeGen", "DEBUT =" & Me.DEBUT.Value) > 0 Then
MsgBox "La date " & DEBUT & " est déjà inscrite dans ce nom: ",
vbExclamation, "Date de début"
Me.Undo
Cancel = True
End If
End Sub

Mais ça ne marche pas. Il me manque quelque chose pour lier la date debut
au nom.
Quelqu'un(e) peut m'aider, s.v.p.
Merci d'avance
A Costa


--
Voilou !
Cordialement,

Ze Titi






--
Voilou !
Cordialement,

Ze Titi






--
Voilou !
Cordialement,

Ze Titi










Avatar
ze Titi
Soit tu nous caches des choses, soit il y a un problème d'orthographe
quelque part mais manifestement, quelque chose nous échappe...

Le code, t'affiche-t-il la boîte de dialogue ?

Dans ton message
Oui, j'ai essayé. C'es la mm chose
Je vais continuer à faire des testes
Merci encore une fois


As-tu essayé de mettre le code plutôt sur l'évènement "Avant mise à
jour" du formulaire ? Je suis persuadé que ça ira beaucoup mieux de
cette façon...

Dis-nous !

Dans ton message
Je continue à avoir la possibilité d'inserer la même date 2x pour la même
personne.
Peut etre qu'il y a un autre moyen, mais je ne m'en sort pas.
Merci


If DCount("*", "tblListeGen", "DEBUT =#" & Me.DEBUT.Value & "# AND NOM
LIKE '" & Me.Nom.Value & "'") > 0 Then

Il faut bien sûr adapter les noms des champs si nécessaire.

Dans ton message
Re bonjour,
Merci pour la rapidité
j'ai essayé votre votre code mais je n'arriva pas a avoir ce que je veux:

Si quelqu'un est affecté au LIEU "X" du 01/01/07 au 31/01/07 je veux
empêcher l'utilisateur d'insérer la même date (DEBUT) pour éviter
d'affecter la même personne, pendant la même période, à deux ou plus
endroits différents.

Le message doit m'indiquer que la date est déjà introduite pour la
personne.

Merci encore une fois

....
Ton code me semble quand même curieux... Que veux-tu faire exactement ?

en ce jour mémorable du vendredi 02/02/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour,
J'ai une table "tblListeGen" avec les champs "NOM", "LIEU","DEBUT",
"FIN" et "DUREE"
Je remplis la table à partir d'un formulaire "frmDataIntroduction"

Je voudrais éviter d'insérer 2 fois la même date de DEBUT pour le même
NOM.

Dans le TextBox "DEBUT"

Private Sub DEBUT_BeforeUpdate(Cancel As Integer)
If DCount("*", "tblListeGen", "DEBUT =" & Me.DEBUT.Value) > 0 Then
MsgBox "La date " & DEBUT & " est déjà inscrite dans ce nom: ",
vbExclamation, "Date de début"
Me.Undo
Cancel = True
End If
End Sub

Mais ça ne marche pas. Il me manque quelque chose pour lier la date
debut au nom.
Quelqu'un(e) peut m'aider, s.v.p.
Merci d'avance
A Costa


--
Voilou !
Cordialement,

Ze Titi






--
Voilou !
Cordialement,

Ze Titi






--
Voilou !
Cordialement,

Ze Titi






--
Voilou !
Cordialement,

Ze Titi







Avatar
A COSTA
Je pense que j'ai bien fait.
J'ai mis le code

If DCount("*", "tblListeGen", "DEBUT =#" & Me.DEBUT.Value & "# AND NOM LIKE
'" & Me.NOM.Value & "'") > 0 Then

dans Before Update du champ DEBUT


Je donne un exemple

A Costa a travaillé du 01/01/07 au 31/01/07 dans le service "Ressources" et
à partir du 1er février dans le service Personnel.

La personne chargée de introduire les données dans la BD c'est trompé et a
mis A Costa dans le service Personnel à partir de 1er janvier.

Or, comme il existait déjà une inscription au service Ressources, c'est
impossible d'être aux deux endroits différents à la même date.

Comme l'introduction est possible et il n'existe pas un message d'alerte,
l'utilisateur ne c'est pas rendu compte de l'erreur. C'est exactement ça que
je voudrais éviter et j'avais pensé à un message box du type "Attention,
cette date a été déjà introduite pour cette personne".

Merci encore une fois
A Costa



Soit tu nous caches des choses, soit il y a un problème d'orthographe
quelque part mais manifestement, quelque chose nous échappe...

Le code, t'affiche-t-il la boîte de dialogue ?

Dans ton message
Oui, j'ai essayé. C'es la mm chose
Je vais continuer à faire des testes
Merci encore une fois


As-tu essayé de mettre le code plutôt sur l'évènement "Avant mise à
jour" du formulaire ? Je suis persuadé que ça ira beaucoup mieux de
cette façon...

Dis-nous !

Dans ton message
Je continue à avoir la possibilité d'inserer la même date 2x pour la même
personne.
Peut etre qu'il y a un autre moyen, mais je ne m'en sort pas.
Merci


If DCount("*", "tblListeGen", "DEBUT =#" & Me.DEBUT.Value & "# AND NOM
LIKE '" & Me.Nom.Value & "'") > 0 Then

Il faut bien sûr adapter les noms des champs si nécessaire.

Dans ton message
Re bonjour,
Merci pour la rapidité
j'ai essayé votre votre code mais je n'arriva pas a avoir ce que je veux:

Si quelqu'un est affecté au LIEU "X" du 01/01/07 au 31/01/07 je veux
empêcher l'utilisateur d'insérer la même date (DEBUT) pour éviter
d'affecter la même personne, pendant la même période, à deux ou plus
endroits différents.

Le message doit m'indiquer que la date est déjà introduite pour la
personne.

Merci encore une fois

....
Ton code me semble quand même curieux... Que veux-tu faire exactement ?

en ce jour mémorable du vendredi 02/02/2007, tu as entrepris la lourde
tâche de taper sur ton clavier :
Bonjour,
J'ai une table "tblListeGen" avec les champs "NOM", "LIEU","DEBUT",
"FIN" et "DUREE"
Je remplis la table à partir d'un formulaire "frmDataIntroduction"

Je voudrais éviter d'insérer 2 fois la même date de DEBUT pour le même
NOM.

Dans le TextBox "DEBUT"

Private Sub DEBUT_BeforeUpdate(Cancel As Integer)
If DCount("*", "tblListeGen", "DEBUT =" & Me.DEBUT.Value) > 0 Then
MsgBox "La date " & DEBUT & " est déjà inscrite dans ce nom: ",
vbExclamation, "Date de début"
Me.Undo
Cancel = True
End If
End Sub

Mais ça ne marche pas. Il me manque quelque chose pour lier la date
debut au nom.
Quelqu'un(e) peut m'aider, s.v.p.
Merci d'avance
A Costa


--
Voilou !
Cordialement,

Ze Titi






--
Voilou !
Cordialement,

Ze Titi






--
Voilou !
Cordialement,

Ze Titi






--
Voilou !
Cordialement,

Ze Titi












Avatar
Tisane
Bonjour A Costa,

Je donne un exemple
A Costa a travaillé du 01/01/07 au 31/01/07 dans le service
"Ressources" et à partir du 1er février dans le service Personnel.
La personne chargée de introduire les données dans la BD c'est trompé
et a mis A Costa dans le service Personnel à partir de 1er janvier.
Or, comme il existait déjà une inscription au service Ressources,
c'est impossible d'être aux deux endroits différents à la même date.


J'ai peut-être lu un peu vite, mais pourquoi ne pas simplement indexer sans
doublon les 2 champs concernés, donc le code de la personne ET la date de
début ?

--
Tisane

[...]

1 2