Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre à l'essai
    Inscrit en
    février 2003
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : février 2003
    Messages : 22
    Points : 18
    Points
    18

    Par défaut Comment éviter les doublons dans ma table

    Salut

    Je veux éviter les doublons dans ma table(le doublons est testé sur le champ nom de ma table paradox).En réalité le nom d'un enregistrement ne doit exiter qu'une seule fois dans la table.Si l'utilisateur saisi un enregistrement dont le champ nom est déjà exitant ds la table, mon porg doit afficher un message et ne doit pas ajouter ce enregistrement.

    Enfin, je voudrais que les colonnes de mon DBGRID se redimensionne automatiquement à la longeur de la valeur la plus longue(en caractère) du champ affiché par ladite colonne.

    Merci pour toute votre aide

  2. #2
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2003
    Messages : 3 830
    Points : 4 003
    Points
    4 003

    Par défaut

    Pour les doublons, je te proposerai ce cours:
    http://sqlpro.developpez.com/cours/doublons/

    Si ta clé est le champ nom, tu peux détecter l'insertion d'un doublon en gérant l'exception qui sera déclenchée lors de l'insertion du second nom identique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    try
    ...
     MaTable.Post;
    except
     on E : EDataBaseError do ShowMessage(E.Message);
    end;
    par exemple...

    Pour le redimensionnement automatique des cellules, tu peux le faire dans l'évènement OnDrawColumnCell (cherche des exemples d'utilisation dans le forum et dans la FAQ)

    A+

  3. #3
    Membre à l'essai
    Inscrit en
    février 2003
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : février 2003
    Messages : 22
    Points : 18
    Points
    18

    Par défaut

    jai essayé une méthode qui consiste à utiliser la fonction findkey avant d'insérer l'enregistrement et ça marche;Néanmoins je vais essayé celle là.
    encore merci

  4. #4
    Membre régulier
    Inscrit en
    avril 2002
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : avril 2002
    Messages : 88
    Points : 72
    Points
    72

    Par défaut

    Effectivement pour contrôler les doublons, une des solutions consiste à utiliser le FindKey. Néanmoins, concernant votre exemple de nom qui doit être unique fais attention aux vrais doublons. Vous pouvez avoir à traiter deux personnes physiques différentes qui ont le même nom. Dans ce cas, tel que vous avez posé le problème, vous ne pouvez pas. A moins que vous précisez plus votre problème.

Discussions similaires

  1. Comment éviter les doublons dans une ComboBox
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 27/07/2017, 16h03
  2. Comment éviter les doublons dans access
    Par colorid dans le forum Bases de données
    Réponses: 5
    Dernier message: 28/07/2011, 11h45
  3. PHP & MySQL : éviter les doublons dans la table.
    Par ghilan dans le forum Requêtes
    Réponses: 4
    Dernier message: 21/08/2009, 01h57
  4. Comment éviter les doublons dans TComboBox ?
    Par petitclem dans le forum C++Builder
    Réponses: 3
    Dernier message: 28/04/2009, 14h49
  5. problème pour éviter les doublons dans une table
    Par bonnet85 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 19/02/2008, 04h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo