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

Empecher les doublons

3 réponses
Avatar
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

3 réponses

Avatar
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" a écrit dans le message de news:

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



Avatar
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" a écrit dans le message de news:

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" a écrit dans le message de news:

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







Avatar
Richard_35
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" a écrit dans le message de news:

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" a écrit dans le message de news:

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" a écrit dans le message de news:

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