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 :

éviter les doublons requete insertion


Sujet :

Access

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 23
    Points : 9
    Points
    9
    Par défaut éviter les doublons requete insertion
    J'ai une requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO UTILISATEUR SELECT * FROM UTILISATEUR IN 'c:\baseSource'
    comment éviter le message d'erreur lié au doublons dans cette requetes.
    Sachant que le code de cette requete est contenu dans une commande de mon code ADO.

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Salut,

    En faisant un regroupement sur les données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO UTILISATEUR SELECT * FROM UTILISATEUR IN 'c:\baseSource' GROUP BY UTILISATEUR.UTILISATEUR

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    cela devrait marché mais dans le groupe by UTILISATEUR.objet du regroupement

    dans mon cas il faudrait UTILISATEUR.cléprimaireD'utilisateur.

    mais comment puis-je recuperer la clé primaire?

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Mai 2004
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 236
    Points : 310
    Points
    310
    Par défaut
    Tu peux essayer ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO UTILISATEUR as t1 SELECT * FROM UTILISATEUR IN 'c:\baseSource' as t2 WHERE NOT EXISTS ( SELECT * FROM UTILISATEUR IN 'c:\baseSource' as t3 WHERE t3.id_user = t1.id_user)
    En espérant t'avoir aidé.

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    dans mon cas j'ai mit la requete dans une boucle qui avec une liste de table c'est pour cela que je ne peut pas ecrire le nom de la clé primaire mais je doit récupérer les nom des clé primaire. J'ai trouver ce code mais il me le faut en ado.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Function TrouverCP(nom_table As String) As String
     
            Dim bds As DataBase
            Dim dft As TableDefs
            Dim chp As Field
            Dim idx As Index
            ' base de données en cours.
            Set bds = CurrentProject.Connection
            ' Retourne un objet Tabledef pointant sur une table.
     
             Set dft = bds.TableDefs(nom_table)
         ' Parcourt la collection Indexes de l'objet TableDef.
          For Each idx In dft.Indexes
            ' Vérifie la propriété Primary de l'index de
            ' l'objet Recordset.
                If idx.Primary Then
                   For Each chp In idx.Fields
                       TrouverCP = chp.Name
                       'clef primaire trouvé
                       Set bds = Nothing
                      Exit Function
                      ' on quitte la fonction
                  Next chp
             End If
         Next idx
         Set bds = Nothing
            TrouverCP = "null"
            ' pas de clef primaire trouvé
    End Function

  6. #6
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 23
    Points : 9
    Points
    9
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO UTILISATEUR as t1 SELECT * FROM UTILISATEUR IN 'c:\baseSource' as t2 WHERE NOT EXISTS ( SELECT * FROM UTILISATEUR IN 'c:\baseSource' as t3 WHERE t3.id_user = t1.id_user)
    ce code ne fonctionne pas car on ne peut pas mettre le premier As sans obtenir d'erreur dû à la syntaxe de INSERT INTO.

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/02/2006, 23h50
  2. [MySQL] Eviter les doublons à l'insertion dans une base
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 26/01/2006, 15h26
  3. publipostage : comment éviter les doublons?
    Par Christophe93250 dans le forum Access
    Réponses: 15
    Dernier message: 03/01/2006, 12h08
  4. Comment éviter les doublons dans ma table
    Par einegel dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/11/2004, 12h18
  5. Éviter les doublons dans une requete
    Par royrremi dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 03/08/2004, 19h37

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