OVH Cloud OVH Cloud

Sans doublon sur 2 champs

3 réponses
Avatar
Jorge
Bonjour tous le monde.

Dand une table j'ai un champ Date, NomTransporteur et NombreDeTransport
Tous les jours il me faut saisir par transporteurs le nombre de transport
qu'ils effectuent.
Cela donne :
Date1 Transporteur1 5
Date1 Transporteur2 2
Date1 Transporteur3 1
Date2 Transporteur1 4
Date2 Transporteur2 3
Date2 Transporteur3 3

J'ai une clée primaire sur un autre champ (Numéro auto)

Le problème c'est que rien ne m'empèche pas erreur de saisir deux fois le
même transporteur pour la même date.

Que faut-il que je fasse pour interdire de saisir 2 fois le même
transporteur pour la même date ?????

3 réponses

Avatar
Raymond [mvp]
Bonjour.

sur l'événement Form_BeforeUpdate, tu places une fonction DLookUP ou DCount
avec la clause where basée sur le champ transporteur et le champ date. si tu
trouves l'info ou un nombre > 0 selon la fonction, tu affiches un message
d'erreur et tu renvoies True dans Cancel pour annuler l'opération.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Jorge" a écrit dans le message de news:
4175064a$0$28560$
Bonjour tous le monde.

Dand une table j'ai un champ Date, NomTransporteur et NombreDeTransport
Tous les jours il me faut saisir par transporteurs le nombre de transport
qu'ils effectuent.
Cela donne :
Date1 Transporteur1 5
Date1 Transporteur2 2
Date1 Transporteur3 1
Date2 Transporteur1 4
Date2 Transporteur2 3
Date2 Transporteur3 3

J'ai une clée primaire sur un autre champ (Numéro auto)

Le problème c'est que rien ne m'empèche pas erreur de saisir deux fois le
même transporteur pour la même date.

Que faut-il que je fasse pour interdire de saisir 2 fois le même
transporteur pour la même date ?????




Avatar
azza
Bonjour
jai 2 solutions et je te previen que je suis debutant alors faut verifier
1- dans levenemnt avant MAJ parcourir la table (donc index la sur date et
transporteur cest plus rapide) si tu trouve les deux champ date et
transporteur existe deja tu annule l'operation
tu met cancel =true
2- tu cree un cle primaire composite avec deux champ qui sont le date et
transporteur automatiquement le sgbd ne laissera pas introduire de champs
existant dèja (une cle primaire ne peut avoir de doublon)
a+

"Jorge" a écrit dans le message de news:
4175064a$0$28560$
Bonjour tous le monde.

Dand une table j'ai un champ Date, NomTransporteur et NombreDeTransport
Tous les jours il me faut saisir par transporteurs le nombre de transport
qu'ils effectuent.
Cela donne :
Date1 Transporteur1 5
Date1 Transporteur2 2
Date1 Transporteur3 1
Date2 Transporteur1 4
Date2 Transporteur2 3
Date2 Transporteur3 3

J'ai une clée primaire sur un autre champ (Numéro auto)

Le problème c'est que rien ne m'empèche pas erreur de saisir deux fois le
même transporteur pour la même date.

Que faut-il que je fasse pour interdire de saisir 2 fois le même
transporteur pour la même date ?????




Avatar
Ilan
Bonjour,
Tu peux peut-etre essayer de creer ta cle primaire sur les champs
DATE et TRANSPORTEUR uniquement
Dans la structure de la table - Selectionner les champs Date et Transporteur
puis
Cliquer sur l'icone Cle primaire. Tu n'as pas besoin du numeroauto
si DATE+TRANSPORTEUR est unique.

Fais le test sur une copie de la table.


Bonjour tous le monde.

Dand une table j'ai un champ Date, NomTransporteur et NombreDeTransport
Tous les jours il me faut saisir par transporteurs le nombre de transport
qu'ils effectuent.
Cela donne :
Date1 Transporteur1 5
Date1 Transporteur2 2
Date1 Transporteur3 1
Date2 Transporteur1 4
Date2 Transporteur2 3
Date2 Transporteur3 3

J'ai une clée primaire sur un autre champ (Numéro auto)

Le problème c'est que rien ne m'empèche pas erreur de saisir deux fois le
même transporteur pour la même date.

Que faut-il que je fasse pour interdire de saisir 2 fois le même
transporteur pour la même date ?????