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 :

Problème à l'exécution d'une requête suppression basée sur une requête sélection


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 6
    Points : 9
    Points
    9
    Par défaut Problème à l'exécution d'une requête suppression basée sur une requête sélection
    Salut à tous,

    Je rencontre un problème lors de l'exécution d'une requête suppression liée à une requête sélection.

    Requête Sélection Q_Archivage_Contacts_SEL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCTROW Contacts.N°Contact
    FROM (Contacts LEFT JOIN Factures ON Contacts.N°Contact = Factures.Client) LEFT JOIN Réservations ON Contacts.N°Contact = Réservations.Client
    WHERE (((Contacts.[Inactif])=True) AND ((Factures.FactureExportée) Is Null) AND ((Réservations.ClientArrivé) Is Null));
    => Le résultat de cette rêquête est correct

    Requête Suppression Q_Archivage_Contacts_DEL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DELETE DISTINCTROW Contacts.*
    FROM Contacts RIGHT JOIN Q_Archivage_Contacts_SEL ON Contacts.N°Contact = Q_Archivage_Contacts_SEL.N°Contact;
    => L'exécution de cette requête provoque un message d'erreur : Spécifiez la table contenant les enregistrements que vous voulez supprimer. (Erreur 3128)

    Pourtant j'ai bien spécifié DISTINCTROW, Contacts.* et la table Contacts dans laquelle je souhaite supprimer les données est bien la seule table.


    Par contre, j'ai un autre exemple bâti sur le même modèle, mais qui fonctionne parfaitement.

    Requête Sélection Q_Archivage_Facture_SEL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCTROW Factures.N°FactureAuto
    FROM Contacts RIGHT JOIN (Réservations RIGHT JOIN Factures ON Réservations.N°Réservation = Factures.N°Réservation) ON Contacts.N°Contact = Factures.Client
    WHERE (((Factures.FactureExportée)=True) AND ((Year([DateFacture]))=[Forms]![F_Archivage]![Année]));
    Requête Suppression Q_Archivage_Factures :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DELETE DISTINCTROW Factures.*
    FROM Factures RIGHT JOIN Q_Archivage_Factures_SEL ON Factures.N°FactureAuto = Q_Archivage_Factures_SEL.N°FactureAuto;
    Merci d'éclairer ma lanterne.

    Cordialement,
    Philippe Rossinelli

  2. #2
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2012
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Février 2012
    Messages : 164
    Points : 87
    Points
    87
    Par défaut
    En général, si un exemple fonctionne et pas l'autre, c'est qu'il y a une erreur (faute de frappe sur le noms des champs, manque une virgule,) qui s'est glissée dans la requête.

  3. #3
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    De mémoire, j'ai encore jamais vue DELETE DISTINCTROW
    Un peu de lecture ici.
    Peux-tu nous dire ce que tu compte faire. Du genre, je veux supprimer les lignes d'une table qui on des correspondants dans d'autres tables...
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 604
    Points : 56 720
    Points
    56 720
    Billets dans le blog
    40
    Par défaut
    salut,

    Citation Envoyé par alassanediakite Voir le message
    De mémoire, j'ai encore jamais vue DELETE DISTINCTROW
    parfois ça rend bien service sous Access, voir Suppression avec une jointure ?

  5. #5
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    Merci fleb
    Là je mérites bien un de la part de sqlpro. En espérant qu'il ne passe par ici.
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  6. #6
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 604
    Points : 56 720
    Points
    56 720
    Billets dans le blog
    40
    Par défaut
    surtout ne parles pas de DISTINCTROW à Sqlpro
    DISTINCTROW ou l'exemple parfait de l'absurdité d'Access !

    Tu as raison, s'il passe par ici, on est mort

    Par contre je ne vois pas bien ce qui ne marche pas dans les requêtes de Philippe1975. Des solutions de contournement sont proposés dans les liens.

Discussions similaires

  1. [WD15] Remplir une colonne table basée sur une requête
    Par kinansoag dans le forum WinDev
    Réponses: 4
    Dernier message: 14/01/2015, 09h45
  2. [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
  3. Réaliser une requête croisée basée sur une Select
    Par sakia dans le forum VBA Access
    Réponses: 6
    Dernier message: 15/09/2010, 17h25
  4. [WD12] Requête UPDATE basée sur une jointure ?
    Par =JBO= dans le forum HyperFileSQL
    Réponses: 7
    Dernier message: 15/01/2010, 15h21
  5. Requête CpteDom basée sur une requête
    Par Yoshi592 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 21/07/2007, 12h04

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