Empecher les doublons

Le
Arnaud
Bonjour,
J'ai un formulaire avec un controle calendrier.
Quand je valide, mon code copie la date sélectionné dans une table.
Pour éviter de créer des doublons, je veux un message pour me dire que
l'enregistrement existe déjà :
voila mon code :

set db = currentdb()
crit = forms![F_GESTION DES SAMEDIS].Idpersonnel
crit2=forms![F_GESTION DES SAMEDIS].calendrier.value
chsql = "select * from T_samedi where t_samedi.idpersonnel = " & crit & "
and t_samedi.date = #" & crit2 & "#"
set rec= db.openrecordset (chsql, dbopensnapshot)
If rec.EOF = false then
msgbox " La date sélectionnée est déjà crée !!", vbcritical+vbOKonly
End if

Ce qui est très étonnant, c'est que ça marche bien pour les dates à partir
du 11 du mois : Quand je veux valider une seconde fois cette date, j'ai bien
le message.
par contre, en dessous du 11, je n'ai aucun message et access m'ajoute des
enregistrements meme s'il en existe déjà !

Avez vous une idée pour me sortir de mauvais pas ?
Cordialement,
Arnaud
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
Richard_35
Le #6318691
Bonsoir Arnaud,

Pourquoi ne crées-tu pas un index avec doublon non permis pour le couple
t_samedi.idpersonnel/t_samedi.date de ta table T_samedi ?
Ainsi, ACCESS gèrera, lui-même, la saisie de doublon avec un message
d'erreur.

Dis-nous,
Richard.

"Arnaud"
Bonjour,
J'ai un formulaire avec un controle calendrier.
Quand je valide, mon code copie la date sélectionné dans une table.
Pour éviter de créer des doublons, je veux un message pour me dire que
l'enregistrement existe déjà :
voila mon code :

set db = currentdb()
crit = forms![F_GESTION DES SAMEDIS].Idpersonnel
crit2=forms![F_GESTION DES SAMEDIS].calendrier.value
chsql = "select * from T_samedi where t_samedi.idpersonnel = " & crit & "
and t_samedi.date = #" & crit2 & "#"
set rec= db.openrecordset (chsql, dbopensnapshot)
If rec.EOF = false then
msgbox " La date sélectionnée est déjà crée !!", vbcritical+vbOKonly
End if

Ce qui est très étonnant, c'est que ça marche bien pour les dates à partir
du 11 du mois : Quand je veux valider une seconde fois cette date, j'ai
bien le message.
par contre, en dessous du 11, je n'ai aucun message et access m'ajoute des
enregistrements meme s'il en existe déjà !

Avez vous une idée pour me sortir de mauvais pas ?
Cordialement,
Arnaud



Arnaud
Le #6318661
C'est une bonne idée mais je ne sais pas comment gérer un index pour un
couple..
merci de votre aide !
Arnaud

"Richard_35"
Bonsoir Arnaud,

Pourquoi ne crées-tu pas un index avec doublon non permis pour le
couple t_samedi.idpersonnel/t_samedi.date de ta table T_samedi ?
Ainsi, ACCESS gèrera, lui-même, la saisie de doublon avec un message
d'erreur.

Dis-nous,
Richard.

"Arnaud"
Bonjour,
J'ai un formulaire avec un controle calendrier.
Quand je valide, mon code copie la date sélectionné dans une table.
Pour éviter de créer des doublons, je veux un message pour me dire que
l'enregistrement existe déjà :
voila mon code :

set db = currentdb()
crit = forms![F_GESTION DES SAMEDIS].Idpersonnel
crit2=forms![F_GESTION DES SAMEDIS].calendrier.value
chsql = "select * from T_samedi where t_samedi.idpersonnel = " & crit & "
and t_samedi.date = #" & crit2 & "#"
set rec= db.openrecordset (chsql, dbopensnapshot)
If rec.EOF = false then
msgbox " La date sélectionnée est déjà crée !!", vbcritical+vbOKonly
End if

Ce qui est très étonnant, c'est que ça marche bien pour les dates à
partir du 11 du mois : Quand je veux valider une seconde fois cette date,
j'ai bien le message.
par contre, en dessous du 11, je n'ai aucun message et access m'ajoute
des enregistrements meme s'il en existe déjà !

Avez vous une idée pour me sortir de mauvais pas ?
Cordialement,
Arnaud







Richard_35
Le #6318591
Bonjour Arnaud,

Désolé, je dois m'absenter pour la journée.
D'après ce que je comprends, il s'agit de la clé primaire de ta table
table T_samedi ; donc, click droit sur le 1er champ, puis sélection "Clé
primaire", pareil pour le 2ème.
Sinon, s'il s'agit d'un index supplémentaire, "Affichage", "Index" et
saisi des 2 champs sous le même nom d'index.

Dis-nous,
Richard.


"Arnaud"
C'est une bonne idée mais je ne sais pas comment gérer un index pour un
couple..
merci de votre aide !
Arnaud

"Richard_35"
Bonsoir Arnaud,

Pourquoi ne crées-tu pas un index avec doublon non permis pour le
couple t_samedi.idpersonnel/t_samedi.date de ta table T_samedi ?
Ainsi, ACCESS gèrera, lui-même, la saisie de doublon avec un message
d'erreur.

Dis-nous,
Richard.

"Arnaud"
Bonjour,
J'ai un formulaire avec un controle calendrier.
Quand je valide, mon code copie la date sélectionné dans une table.
Pour éviter de créer des doublons, je veux un message pour me dire que
l'enregistrement existe déjà :
voila mon code :

set db = currentdb()
crit = forms![F_GESTION DES SAMEDIS].Idpersonnel
crit2=forms![F_GESTION DES SAMEDIS].calendrier.value
chsql = "select * from T_samedi where t_samedi.idpersonnel = " & crit &
" and t_samedi.date = #" & crit2 & "#"
set rec= db.openrecordset (chsql, dbopensnapshot)
If rec.EOF = false then
msgbox " La date sélectionnée est déjà crée !!", vbcritical+vbOKonly
End if

Ce qui est très étonnant, c'est que ça marche bien pour les dates à
partir du 11 du mois : Quand je veux valider une seconde fois cette
date, j'ai bien le message.
par contre, en dessous du 11, je n'ai aucun message et access m'ajoute
des enregistrements meme s'il en existe déjà !

Avez vous une idée pour me sortir de mauvais pas ?
Cordialement,
Arnaud











Publicité
Poster une réponse
Anonyme