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

Requêtes et SQL. Discussion :

[Requête/SQL]Mise à jour avec condition


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 216
    Par défaut [Requête/SQL]Mise à jour avec condition
    J’ai encore un problème :
    La table A alimente la table B. Lors de l’import quotidien des données d’une table à l’autre, comment faire pour que la requete n’apporte que les nouvelles données et n’efface pas les anciennes.
    Par exemple, il faudrait une formule : « si données n’est pas dans la liste, la rajouter, sinon ne rien faire)
    De facon à ne pas obtenir 2 fois la même données
    Est il possible de faire cela sans programmation ?

  2. #2
    Membre Expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Par défaut
    En te basant sur la clé des tables, tu peux identifier ce qui sont absents de la table destination en jouant notamment sur le type de jointure dans une requete ajout...

    Quelque chose du genre:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO TableDestination (LaClé, MonChamp2....)
    SELECT DISTINCTROW TableSource.LaClé,TableSource.Champ2,...
    FROM TableSource Left Join TableDestination On TableSource.LaClé = TableDestination.LaClé
    WHERE TableDestination.LaClé Is Null

    (Biensur il faut adapter cette requête à ton cas)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 216
    Par défaut
    Et sans requete SQL c'est possible??
    Parce que ce n'est vraiment pas clair pour moi (je débute en accès)

  4. #4
    Membre Expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Par défaut
    Notes que toute requête que tu crées dans Access est enregistrée en SQL, même si tu l'élabores à l'aide de la trés efficace et conviviale interface QBE (le "mode création") que propose Access.

    Ce serait long à t'expliquer une à une chacune des composantes de cette requête sans le SQL. Essayes donc de faire un cas simple en t'inspirant de la requête que je t'ai proposée.
    Pour cela crées dans une base de test, une table TableDestination comportant un champ LaClé et un champ Champ2 et une autre table TableSource de même structure.

    Crées ensuite une nouvelle requête. Sans ajouter de table, tu passes en SQL (Affichage / Mode SQL) et tu colles la reuête ci-dessous.
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    INSERT INTO TableDestination (LaClé, Champ2)
    SELECT DISTINCTROW TableSource.LaClé,TableSource.Champ2
    FROM TableSource LEFT JOIN TableDestination ON TableSource.LaClé = TableDestination.LaClé
    WHERE TableDestination.LaClé IS NULL

    Repasses alors en mode Création et étudies l'architecture de cette requête.


    Bon courage

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 216
    Par défaut
    je n y arrive pas... Il n existe pas une autre méthode?

  6. #6
    Membre Expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Par défaut
    Sans doute trouveras-tu de quoi mieux comprendre les concepts dont tu as besoin dans les tutos...


    Par exemple, regarde le tuto de Maxence sur les jointures
    http://mhubiche.developpez.com/Acces...ointures/#L3.6


    Bon courage

  7. #7
    Membre Expert Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Par défaut
    tu peut eventuelement ajouter 1 champ boleen(Case a cocher)cocher tous les elements exporte et ensuite dans ta requete metre dans le critere du champ boleen Non logiquement il te restera que les enregistrements non exporter.

Discussions similaires

  1. [requête sql] Mise à jour si non renseigné
    Par jeanphi45 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 12/10/2011, 15h13
  2. [AC-97] mise à jour avec conditions
    Par burolec dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 18/03/2011, 17h06
  3. [AC-2002] requête de mise à jour avec code VBA
    Par sylvie dans le forum VBA Access
    Réponses: 5
    Dernier message: 26/05/2010, 13h56
  4. [AC-2003] Requête mise à jour avec condition IN
    Par buzz73 dans le forum VBA Access
    Réponses: 19
    Dernier message: 30/07/2009, 12h03
  5. [Requête/SQL]Mise à jour table sans supprimer les relations
    Par atlantideD dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 13/04/2007, 14h53

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