1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    février 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : février 2015
    Messages : 39
    Points : 4
    Points
    4

    Par défaut Comparer 2 tables a 200 champs sous access

    Bonjour a tous,

    J'aimerais savoir comment comparer les champs de ma table A avec ceux de la table B ? Comparaison 1 a 1 sauf sur l'id des mes 2 tables, table de meme structure avec 200 champs dans chaque table

    J'ai construit une requête sql dynamique or mon problème c'est qu-il y a plus de champs que prévu du coup cela me génère une erreur la 3190


    Comment puis-je faire pour comparer mes données sans cette erreur ?

    Je souhaites savoir si un écart est constaté entre le champs A et le champs B ?

    Cordialement les developpiens

  2. #2
    Membre éprouvé
    Inscrit en
    août 2008
    Messages
    627
    Détails du profil
    Informations forums :
    Inscription : août 2008
    Messages : 627
    Points : 910
    Points
    910

    Par défaut

    Bonjour,

    Solution 1)
    dans ton code existant rajoute un DoEvents, ça m'est arrivé de résoudre des problèmes un peu similaires comme ça

    Solution 2)
    si tu maîtrise VBA, tu peux essayer de faire tout en code avec recordset DAO

    tu crées une table de metadata comprenant le nom des champs de ta table à contrôler
    tu crées une table de résultat: ID, Champ, ValeurSource, ValeurCible

    tu travailles avec 4 recordset: rstSource, rstCible, rstChamp, rstResultat et l'algo aura cette tête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    while not rstSource.eof
            rstCible.findfirst "ID=" & rstSource("ID")
            rstChamp.movefirst
            while not rstChamp.eof
               if rstSource(rstChamp("Champ")) <>rstCible(rstChamp("Champ")) then rstResultat.add..... 
               rstChamp.movenext
            Wend       
            rstSource.movenext
    Wend

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    11 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 11 186
    Points : 16 817
    Points
    16 817

    Par défaut

    Bonjour.

    Pour comparer 200 champs 1 à 1, je recommande le code suivant (basé sur l'exemple de accessisgood).

    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
    dim f as dao.fields:for each field in rstSource.fields
     
       select case f.name
          case "ID"
             'Ne pas comparer
     
          case else
     
             if rstCible.fields(f.name) <> f then
                'Enregistre le résultat
             end if
     
        end select
     
    next f
    Cela évite d'avoir à définir une table avec les 200 noms de champ.

    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.

Discussions similaires

  1. [ASE 21.5.4] mappage des tables sybase 12.5 sous access 2003 via odbc
    Par dngaya dans le forum Adaptive Server Enterprise
    Réponses: 5
    Dernier message: 27/02/2008, 16h50
  2. [Table]Ajout de champ dans ACCESS
    Par Eric Harvey dans le forum Modélisation
    Réponses: 7
    Dernier message: 15/04/2007, 18h17
  3. Réponses: 1
    Dernier message: 15/06/2006, 17h39
  4. changer les noms de champs sous access
    Par Flo42 dans le forum Access
    Réponses: 4
    Dernier message: 11/04/2006, 12h29
  5. tester si une table existe ou non sous access
    Par Lady_jade dans le forum Access
    Réponses: 4
    Dernier message: 17/02/2006, 20h44

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