Supprimer les doublons dans un dbgrid [Résolu]

Messages postés
70
Date d'inscription
jeudi 3 novembre 2011
Dernière intervention
6 février 2015
- - Dernière réponse : cs_cantador
Messages postés
4996
Date d'inscription
dimanche 26 février 2006
Dernière intervention
27 mars 2018
- 20 févr. 2012 à 15:50
Bonjour a tous,

j'ai une base de données avec un champ (Nom) qui est indexé sans doublons
mon problème aujourd'hui c'est quand je rentre un doublons dans EditNom.text puis je valide
--------------------------------
with ado.table do
begin
insert;
fieldbyname('Nom').value := EditNom.text
post;
--------------------------------
- J'ai un message qui me dit que j'ai un doublons jus que la tout va bien.
- Mais quand je veut modifier le doublons ou entrer un nouveau Nom il me dit toujours la même chose qu'il y a un doublons alors qu'il y a aucun doublons dans la base de données.
- Je suis obliger de me déconnecté de ma base de données puis me reconnecté pour pouvoir entrer un nouveau Nom.
- J'aimerai fait un contrôle directement sur mon dbgrid ou sur AdoTable
- Ou peu être qu'il y a une autre solution pour faire plus simple ??

Merci de votre réponse
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
70
Date d'inscription
jeudi 3 novembre 2011
Dernière intervention
6 février 2015
3
Merci
Rectification du code petite error

procedure TLecture.BtRecherClick(Sender: TObject);
var MsG : Integer;
begin // Si il ne trouve pas le Nom
if not ADOTable.Locate('Nom',EditNom.Text,[]) then
with ado.table do
begin
insert;
fieldbyname('Nom').value := EditNom.text
post;
end
else // Si il trouve le Nom
// ... exemple messageDlg Warning indiquant qu'il n'ai pas possible d'insert se Nom dans la Table risque un doublons
end;

Merci PythonGreg 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de PythonGreg
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Dernière intervention
15 décembre 2014
0
Merci
Salut,

comme déjà dit plusieurs fois, on est pas devins!
Base de données et Compos utilisés?

Rien qu' avec ce que tu me dis, cela semble normal et il faut faire la mise à jour grâce à une clé unique.
Tu peux aussi essayer de faire un CancelUpdates après l' erreur de l' ajout.

A+


Composants Cindy pour Delphi
Faites une donation.
Commenter la réponse de cs_MAURICIO
Messages postés
70
Date d'inscription
jeudi 3 novembre 2011
Dernière intervention
6 février 2015
0
Merci
je pense avoir trouver une solution peu être pas la meilleur mais sa devrai traité mais doublons je fait une rechercher dans la table avent d'inséré le nouveau Nom

procedure TLecture.BtRecherClick(Sender: TObject);
var MsG : Integer;
begin // Si il ne trouve pas le Nom
if not ADOTable.Locate('Nom',EditNom.Text,[]) then
with ado.table do
begin
insert;
fieldbyname('Nom').value := EditNom.text
post;
else // Si il trouve le Nom
// ... exemple messageDlg Warning indiquant qu'il n'ai pas possible d'insert se Nom dans la Table risque un doublons
end;
end;
Commenter la réponse de PythonGreg
Messages postés
4996
Date d'inscription
dimanche 26 février 2006
Dernière intervention
27 mars 2018
0
Merci
Bonjour,

la solution de MAURICIO me semble quand même plus simple !

cantador
Commenter la réponse de cs_cantador

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.