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 suppression : Spécifiez la table


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Points : 41
    Points
    41
    Par défaut Requête suppression : Spécifiez la table
    Bonjour,

    J'aimerais supprimer de ma table [TEMP_PDA] les enregistrements déjà présents dans la table [Traçabilité] et je ne comprends vraiment pas en quoi ceci est complexe...

    J'ai deux requêtes différentes et les deux me posent un soucis:

    Requête avec liaison :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DELETE DISTINCTROW [TEMP_PDA].[OF], [TEMP_PDA].[Connecteur], [TEMP_PDA].[Cms composant], [TEMP_PDA].[Trace composant]
    FROM TEMP_PDA INNER JOIN [Traçabilité-Composants] ON ([TEMP_PDA].[Trace composant]=[Traçabilité-Composants].[Trace Composant]) AND ([TEMP_PDA].[Cms composant]=[Traçabilité-Composants].[Cms Composant]) AND ([TEMP_PDA].[Connecteur]=[Traçabilité-Composants].[Connecteur]) AND ([TEMP_PDA].[OF]=[Traçabilité-Composants].[OF]);

    Requête sans liaison :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DELETE TEMP_PDA.OF, TEMP_PDA.Connecteur, TEMP_PDA.[Cms composant], TEMP_PDA.[Trace composant], TEMP_PDA.[Login opérateur], TEMP_PDA.Date
    FROM TEMP_PDA, [Traçabilité-Composants]
    WHERE (((TEMP_PDA.OF)=[Traçabilité-Composants].[OF]) AND ((TEMP_PDA.Connecteur)=[Traçabilité-Composants].[Connecteur]) AND ((TEMP_PDA.[Cms composant])=[Traçabilité-Composants].[Cms Composant]) AND ((TEMP_PDA.[Trace composant])=[Traçabilité-Composants].[Trace Composant]) AND ((TEMP_PDA.[Login opérateur])=[Traçabilité-Composants].[Login Opérateur]) AND ((TEMP_PDA.Date)=[Traçabilité-Composants].[Date]));

    Le soucis c'est qu'Access m'affiche ce message :

    "spécifier la table contenant les enregistrements que vous voulez supprimer"

    Après avoir chercher j'ai vu que dans le cas de la requête utilisant des liaisons je pouvais utiliser les jointures externes et que combinées à un DISTINCTROW cela devrait marcher... Le problème c'est que la requête me propose de supprimer 106 champs au lieu de 101 comme prévu (ce que propose la requête avec jointure interne)

    Je suis un peu paumé, merci d'avance.

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Pour un "delete", on ne précise pas les champs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    delete from MaTable .....

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Points : 41
    Points
    41
    Par défaut
    En faite j'ai utilisé l'interface d'Access pour établir ma requête et ceci est le code SQL associé. J'ai essayé avec un DELETE FROM mais Access me dit qu'il faut au moins un champs de destination :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DELETE FROM TEMP_PDA
    WHERE (((TEMP_PDA.OF)=[Traçabilité-Composants].[OF]) AND ((TEMP_PDA.Connecteur)=[Traçabilité-Composants].[Connecteur]) AND ((TEMP_PDA.[Cms composant])=[Traçabilité-Composants].[Cms Composant]) AND ((TEMP_PDA.[Trace composant])=[Traçabilité-Composants].[Trace Composant]));

  4. #4
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 175
    Points : 193
    Points
    193
    Par défaut
    Bonjour,

    cette requête ne fonctionne pas?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Points : 41
    Points
    41
    Par défaut
    Access m'affiche ce message d'erreur à l'éxecution :

    La requête doit avoir au moins un champs de destination.

Discussions similaires

  1. [Toutes versions] Requête suppression basée sur un critère situé dans une autre table
    Par possible924 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 09/11/2014, 18h56
  2. Requête de suppression dans une table pas exécutée
    Par chaamahdi dans le forum AS/400
    Réponses: 1
    Dernier message: 01/11/2013, 17h59
  3. [AC-2010] Suppression dans une table via une requête
    Par Skima dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 03/12/2012, 22h54
  4. Requête suppression sur 3 tables
    Par curt dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 30/01/2008, 11h29
  5. Suppression de plusieurs tables/requêtes
    Par Lewick dans le forum Access
    Réponses: 6
    Dernier message: 30/08/2007, 09h29

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