OVH Cloud OVH Cloud

Doublons

3 réponses
Avatar
Yo man
Bonjour,
Je souhaiterais effectuer un controle de saisie sur un=20
champ afin qu'un message s'affiche si les donn=E9es saisie=20
dans le champ existe d=E9ja dans ma table.
Je voudrais faire une macro avec une condition, mais je ne=20
comprend pas le fonctionnement.
Merci

3 réponses

Avatar
gafish
Bonjour,

Une solution simple qui peut s'appliquer si tu n'as pas déja défini de clé
primaire sur plusieurs champs c'est de mettre le champ concerné en clé
primaire, ca se fera tout seul comme ca.

Arnaud

"Yo man" a écrit dans le message news:
1f9d01c46fe7$25ee01a0$
Bonjour,
Je souhaiterais effectuer un controle de saisie sur un
champ afin qu'un message s'affiche si les données saisie
dans le champ existe déja dans ma table.
Je voudrais faire une macro avec une condition, mais je ne
comprend pas le fonctionnement.
Merci
Avatar
Magic
J'y ai pensé, ou même utiliser des index, mais je veux
garder la possibilité d'enregistrer le doublon. C'est
juste un message d'avertissement que je veux.

-----Message d'origine-----
Bonjour,

Une solution simple qui peut s'appliquer si tu n'as pas
déja défini de clé

primaire sur plusieurs champs c'est de mettre le champ
concerné en clé

primaire, ca se fera tout seul comme ca.

Arnaud

"Yo man" a écrit
dans le message news:

1f9d01c46fe7$25ee01a0$
Bonjour,
Je souhaiterais effectuer un controle de saisie sur un
champ afin qu'un message s'affiche si les données saisie
dans le champ existe déja dans ma table.
Je voudrais faire une macro avec une condition, mais je ne
comprend pas le fonctionnement.
Merci


.



Avatar
gafish
J'ai une solution VBA si tu n'es pas allergique.
A mettre sur l'evenement "lostfocus" de la zone de ton form :

Private Sub NomDeTaZone_LostFocus()

Dim dbscurrent as database
set dbscurrent = opendatabase(currentdb.name)
Dim rstDoublon as recordset
set rstDoublon = dbscurrent.openrecordset("SELECT * FROM [NomDeTaTable]
WHERE [NomDeTonChamp]='" & Me!NomDeTaZone.Value & "';")
if rstDoublon.RecordCount > 0 then
msgbox "Attention, la valeur que vous avez saisi est déja présente
dans la table"
End If

rstDoublon.close
dbscurrent.close
set rstDoublon = nothing
set dbscurrent = nothing

End Sub

je n'ai pas testé le code mais ca devrait etre bon, il suffit que tu
remplaces NomDeTaZone par le nom de la zone de ton formulaire, NomDeTaTable
par le nom de la table concernée, et NomDuChamp par le nom du champ dans ta
table.

"Magic" a écrit dans le message news:
210201c46fed$2f0c8b20$
J'y ai pensé, ou même utiliser des index, mais je veux
garder la possibilité d'enregistrer le doublon. C'est
juste un message d'avertissement que je veux.

-----Message d'origine-----
Bonjour,

Une solution simple qui peut s'appliquer si tu n'as pas
déja défini de clé

primaire sur plusieurs champs c'est de mettre le champ
concerné en clé

primaire, ca se fera tout seul comme ca.

Arnaud

"Yo man" a écrit
dans le message news:

1f9d01c46fe7$25ee01a0$
Bonjour,
Je souhaiterais effectuer un controle de saisie sur un
champ afin qu'un message s'affiche si les données saisie
dans le champ existe déja dans ma table.
Je voudrais faire une macro avec une condition, mais je ne
comprend pas le fonctionnement.
Merci


.