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

Langage SQL Discussion :

[Access] Différence de tables


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 2
    Par défaut [Access] Différence de tables
    Bonjour à tous,

    Je développe actuellement un petit outil de gestion quotidienne de bases Access, et j'aurais besoin de pouvoir créer des tables "différentielles" pour maintenir un historique sans que cela ne prenne trop de place.

    Pour cela je souhaiterais utiliser la différence de tables SQL, mais malheureusement EXCEPT ne fonctionne pas sous Access... La solution de rechange serait donc d'utiliser une jointure gauche, du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO TableDiff SELECT * FROM Table1 LEFT JOIN Table2
    ON Table1.champ1 = Table2.champ1 AND (...) Table1.champN = Table2.champN
    WHERE Table2.Id Is NULL
    Le problème, c'est que mes tables comportent en moyenne une soixantaine de champs, et que de nouveaux champs sont susceptibles d'apparaître dans le futur... Est-ce quelqu'un aurait une solution pour aboutir à un code moins lourd et facilement portable ?

    Merci d'avance et bonne journée !

    Note 1 : Pour des raisons de compatabilité avec des partenaires pas forcément très à jour en informatique, je travaille avec Access 97.
    Note 2 : J'avais posté ce topic sur le forum Access, mais après réflexion ce n'était peut-être pas le bon endroit... Désolé pour le double post !

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 143
    Par défaut
    En l'absence d'opérateur MINUS/EXCEPT, la méthode que tu as utilisée est la bonne.
    Si tu souhaites "simplifier" la création de requête, tu peux écrire un petit peu de code VBA qui créera dynamiquement ta requête à partir de la structure des tables...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 2
    Par défaut
    Je me doutais un peu qu'on ne pouvait pas faire plus en SQL... Je m'en retournerai donc au VBA.
    Merci pour ta réponse rapide !

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

Discussions similaires

  1. [Access 2003] Sélection d'un table avec exclusion
    Par morpheez dans le forum Langage SQL
    Réponses: 6
    Dernier message: 11/11/2006, 11h16
  2. Réponses: 8
    Dernier message: 09/05/2006, 11h08
  3. Réponses: 2
    Dernier message: 16/11/2005, 13h41
  4. access remplissage auto d'une table
    Par bjornd dans le forum Access
    Réponses: 2
    Dernier message: 09/11/2005, 08h05

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