IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Access Discussion :

Comment faire pour ne pas ajouter une valeur dans une table si cette valeur est déjà dans la table [AC-2007]


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2010
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 76
    Points : 48
    Points
    48
    Par défaut Comment faire pour ne pas ajouter une valeur dans une table si cette valeur est déjà dans la table
    Bonjour,

    Petit nouveau sur ce forum qui m'a l'air fort sympathique !
    Je suis en train de faire un stage sur Access, je pense donc que ce ne sera pas mon dernier message. Bref, je vais essayer de résumer mon premier problème :

    j'ai une base de données et j'utilise un formulaire (et une requête) pour ajouter des données à une table. Cependant, ma requête ne fais qu'ajouter une donnée et ne vérifie pas si celle ci existe déjà dans la table (je peux donc ajouter par exemple 10 fois le nom Pierre Paul Jacques).

    Je voudrais connaître un moyen pour ne pas avoir des données en double (un peu du type:

    Si Cette_Valeur est déjà présente dans ma table Alors Ne rien Faire,
    Sinon, la rajouter dans la table).

    Je vous remercie d'avance pour vos réponses,

    Tifriis

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Si Cette_Valeur est déjà présente dans ma table
    Soyez plus précis et au besoin donnez un exemple sous forme d’un tableau valorisé. Si la contrainte d’unicité porte sur une colonne ou plusieurs, définissez en conséquence un index de type UNIQUE pour interdire les doublons.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2010
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 76
    Points : 48
    Points
    48
    Par défaut
    Bonjour fsmrel,

    Voici quelques informations supplémentaires.
    J'ai un tableau à une colonne comportant des numéros (de commande).

    Ex :
    123
    5896
    1487

    J'ai fait une requête SQL qui permet d'ajouter un numéro préalablement saisi dans mon formulaire. Cependant, il est impossible d'avoir deux fois le même numéro dans ma colonne (d'après le cahier des charges). Je cherche donc à "ne pas rendre possible" l'ajout d'un numéro si celui-ci existe déjà dans mon tableau.

    Merci d'avance,

    Tifriis

  4. #4
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Si la colonne en question a été définie comme composant la clé primaire de la table, ACCESS interdira l'ajout d'un numéro de commande en double.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    En complément de la réponse de fsmrel

    Tu peux définir un index unique sur un champ particulier (ou un combinaison de champs) en plus de ta clef primaire. En mode design de table il faut appuyer sur le bouton avec l'éclair qui va ouvrir la fenêtre des indexs. En bas à gauche tu peux choisir le type d'index.

    Je me sert régulièrement de cela pour mes tables de références qui ont une clef primaine numauto, un code unique que l'utilisateur peut définir et un libellé unique que l'utilisateur peut définir. Comme cela je m'assure que je n'ai jamais 2 fois le même code ni le même libellé.

    Attention si tu autorises les Nulls dans la zone, tu peux avoir plusieurs enregistrements avec une valeur null dans l'index unique qui du coup n'est plus unique.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  6. #6
    Membre du Club
    Inscrit en
    Octobre 2010
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 76
    Points : 48
    Points
    48
    Par défaut
    Bonjour,

    Merci à vous deux pour vos réponses. Mon problème est maintenant résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/06/2014, 20h15
  2. Réponses: 5
    Dernier message: 22/12/2012, 19h13
  3. Réponses: 2
    Dernier message: 12/09/2007, 22h42
  4. Réponses: 4
    Dernier message: 09/05/2007, 14h41
  5. Comment faire pour annuler des ajouts en cas de problème ?
    Par Cazaux-Moutou-Philippe dans le forum WinDev
    Réponses: 2
    Dernier message: 24/11/2006, 14h40

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