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 :

Comment préciser sur quelle table une requete suppression doit s'exécuter


Sujet :

Requêtes et SQL.

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 39
    Par défaut Comment préciser sur quelle table une requete suppression doit s'exécuter

    Bonjour
    Je rencontre à nouveau quelques petits problèmes…
    Je désire supprimer des enregistrements en laissant le choix à l’utilisateur de ceux qu’il aimerait supprimer via une requete paramétrée. Lui permettant de selectionner le nom, le métier et la période concernée. Cette requête contient également les clés étrangères désignants les tuples à supprimer au sein de la table mère (lignes_eval ; eval_techno selon le cas d’une suppression de techno ou de pratique).
    J’utilise ensuite cette requête comme base à une seconde requete (paramétrée) suppression ou bien sûr les paramètres de suppression sont ceux récupérés de la requete de base. Tout fonctionne à merveille en mode sélection, mais ne génére aucune action en mode suppression… (oups je n'avais pas activer l'autorisation) cependant maintenant la requête s'exécute
    mais me dit qu'il faut que je précise su quelle table elle doit intervenir (en effet il y a dans la requete la table mère (là ou doivente être effacés les données) et la requ^te sous jacente d'ou son tirer les paramètres) Lorsque je retire cette dernière il me demande les valeurs de ce paramètre.

    Alors comment faire pour préciser sur quelle table la requete doit effacer les données

    Quelqu’un peut il m’expliquer
    Merci par avance
    ci joint le modele relationnel de la base
    http://wachoandre.free.fr/indivi.jpg

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 562
    Par défaut
    Bonjour

    Ajoute le "champ" * de la table concernée dans une colonne de la requête.

  3. #3
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    Bonjour,
    Plusieurs possibilités
    1) créer une requete Mise à jour qui va marquer les enregistrements à supprimer dans la table mère (en ecrivant XXX dans un champ texte par exemple), puis supprimer les enregistrements marqués par une deuxieme requete

    2) quand c'est possible, pour chaque champ indiquer le critere de selection ( ligne critere ) qui comprend un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    In (SELECT Parametres.NomChamp FROM Parametres)
    par exemple. La requête peut être plus élaborée.

    Il y a surement d'autres possibilités

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 39
    Par défaut
    Merci de m'avoir consacré encore un peu de temps.
    Je vais essayer la de réaliser une requête de mise à jour comme vous me le suggérez.

    J'ai passé la journée à trouver une solution que je vous expose quand meme au cas ou.


    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DELETE Lignes_eval 
    FROM Lignes_eval INNER JOIN table_crée_base_sup_enr_ele_pro ON Lignes_eval.Techniques_IDtech = table_crée_base_sup_enr_ele_pro.Techniques_IDtech AND Lignes_eval.Evals_IDeval = table_crée_base_sup_enr_ele_pro.Evals_IDeval
    WHERE Lignes_eval.Evals_IDeval=table_crée_base_sup_enr_ele_pro.Evals_IDeval AND Lignes_eval.Techniques_IDtech=table_crée_base_sup_enr_ele_pro.Techniques_IDtech;
    la seconde table utilisée "table_crée" est issue d'une requete création de table qui me permet de sélectionner les enregistrements qu'aimerait supprimer l'utilisateur.

    Je me suis pourtant inspiré de la syntaxe de suppression basé sur plusieurs table de sql 5 et pourtant access me renvoie l'erreur (quelle table utiliser pour la suppression des enregistrements.

    Merci encore pour tout

    aerosky

  5. #5
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonsoir,

    Comme te l'a dit 78chris il faut sélectionner * de la table dans laquelle on veut supprimer, quand il y plus d'une table dans la requête suppression.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DELETE Lignes_eval.*
    FROM Lignes_eval INNER JOIN table_crée_base_sup_enr_ele_pro ON Lignes_eval.Techniques_IDtech = table_crée_base_sup_enr_ele_pro.Techniques_IDtech AND Lignes_eval.Evals_IDeval = table_crée_base_sup_enr_ele_pro.Evals_IDeval;
    Mais bien souvent ça ne fonctionne pas.

    Quelques informations complémentaires ici.

    A+

Discussions similaires

  1. [WD16] Comment ajouter une table à une requete existante
    Par ftahir dans le forum WinDev
    Réponses: 2
    Dernier message: 03/01/2012, 15h57
  2. [AC-2003] Problèmes sur lancement d'une requete creation de table depuis VBE
    Par Jeanpierre71 dans le forum VBA Access
    Réponses: 8
    Dernier message: 22/12/2011, 21h12
  3. Réponses: 1
    Dernier message: 28/03/2007, 12h23
  4. Réponses: 19
    Dernier message: 14/12/2006, 14h21
  5. Réponses: 2
    Dernier message: 04/11/2006, 19h38

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