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 :

Supprimer des enregistrements dans une table


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 232
    Points : 90
    Points
    90
    Par défaut Supprimer des enregistrements dans une table
    Bonjour,
    J'ai la requête ci dessous qui me permet de trouver les enregistrements d'une table qui ne sont pas dans une autre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pas In (Select ([DesignationPre]) From T_PreNTI2)
    Mais comment faire maintenant pour supprimer ces enregistrements et ne garder que ceux qui sont commun.
    Merci

  2. #2
    Membre expérimenté
    Avatar de minot83
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2006
    Messages
    972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 972
    Points : 1 430
    Points
    1 430
    Par défaut
    Bonjour,

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DELETE table2.*
    FROM table2 LEFT JOIN table1 ON table2.Cle = table1.cle
    WHERE (((table1.cle) Is Null));

    Cordialement
    si le message est pertinent : un petit si votre problème est résolu, n'oubliez pas le Tag Merci

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 232
    Points : 90
    Points
    90
    Par défaut
    Bonjour,
    Lorsque je veux sauvegarder cette requête un message d'erreur apparaît:
    "Erreur de synthase (opérateur absent) dans l'expression table2.Cle = table1.cle"
    voici comme je l'ai écrite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT [04-1].Champ3
    DELETE 04-1.*
    FROM 04-1 LEFT JOIN T_PreNTI2 ON 04-1.cle= T_PreNTI2.cle
    WHERE (((T_PreNTI2.cle) IS NULL));
    Merci par avance

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 339
    Points : 19 574
    Points
    19 574
    Billets dans le blog
    65
    Par défaut
    Salut,

    Il faudrait mettre des crochets de part et d'autre du nom de la table "04-1":

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DELETE [04-1].*
    FROM [04-1] LEFT JOIN T_PreNTI2 ON [04-1].cle= T_PreNTI2.cle
    WHERE (((T_PreNTI2.cle) IS NULL));

    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 232
    Points : 90
    Points
    90
    Par défaut
    Bonsoir et merci de votre aide,
    Cela ne fonctionne pas ci-joint le message d'erreur.
    Ci dessous ma requête avec les vrais tables.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT [T_DonnePieceLFDVA].designation
    DELETE [T_DonnePieceLFDVA].*
    FROM T_DonnePieceLFDVA LEFT JOIN T_PreNTI2 ON [T_DonnePieceLFDVA].designation=T_PreNTI2.designationPre
    WHERE (((T_PreNTI2.designationPre) IS NULL));
    Merci
    Images attachées Images attachées  

  6. #6
    Membre expérimenté
    Avatar de minot83
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2006
    Messages
    972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 972
    Points : 1 430
    Points
    1 430
    Par défaut
    Bonjour, tu peux poster ta base (en mdb) avec simplement tes 2 tables et ta requête?
    si le message est pertinent : un petit si votre problème est résolu, n'oubliez pas le Tag Merci

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    en retirant cette 1ère ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT [T_DonnePieceLFDVA].designation
    ça devrait mieux le faire...

    Philippe

  8. #8
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 339
    Points : 19 574
    Points
    19 574
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par philben Voir le message
    bonjour,

    en retirant cette 1ère ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT [T_DonnePieceLFDVA].designation
    ça devrait mieux le faire...

    Philippe
    Alors là ça devient grave, laisser passer ça
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  9. #9
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    moi j'ai rien dit, j'ai trouvé ça plutôt amusant...
    bon wk à vous les amis.

  10. #10
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 339
    Points : 19 574
    Points
    19 574
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par vodiem Voir le message
    moi j'ai rien dit, j'ai trouvé ça plutôt amusant...
    bon wk à vous les amis.
    Salut Diem,

    bon wk et bon app'
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  11. #11
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 232
    Points : 90
    Points
    90
    Par défaut
    Bonjour et merci à tous de votre aide,
    En retirant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [T_DonnePieceLFDVA].designation
    j'obtiens le message:
    "Impossible de supprimer dans les tables spécifiées"
    Je joint ma base avec les 2 tables et la requête!
    merci encore
    Fichiers attachés Fichiers attachés

  12. #12
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    Re bonjour,

    Essayer ceci sur une base test car ça supprime pas loin de 2500 lignes de ta table T_DonnePieceLFDVA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    DELETE T_DonnePieceLFDVA.*
    FROM T_DonnePieceLFDVA
    WHERE T_DonnePieceLFDVA.Designation Not In (SELECT designationpre from T_PreNTI2);
    Philippe

  13. #13
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    re re bonjour,

    On peut aussi utiliser, semble t'il, la première requête en ajoutant le prédicat (spécifique à Access...) DISTINCTROW :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DELETE DISTINCTROW [T_DonnePieceLFDVA].*
    FROM T_DonnePieceLFDVA LEFT JOIN T_PreNTI2 ON [T_DonnePieceLFDVA].designation=T_PreNTI2.designationPre
    WHERE (((T_PreNTI2.designationPre) IS NULL));
    En effet, les colonnes Designation de T_DonnePieceLFDVA et designationPre de T_PreNTI2 qui font la jointure ne sont probablement pas les clefs primaires de tes tables et ça pourrait expliquer que la requete ne fonctionne pas.

    Ce prédicat devrait permettre à la requête de s'executer, si c'est le cas, vérifier quand même le résultat obtenu...

    Philippe

  14. #14
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 232
    Points : 90
    Points
    90
    Par défaut
    Bonjour,
    désolé d'avoir tardé.
    C'est super les 2 fonctionnent.
    Merci encore à tous

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/06/2010, 11h55
  2. Réponses: 4
    Dernier message: 22/03/2007, 18h28
  3. [VBA] Supprimer des lignes dans une table
    Par shadockgreg dans le forum Access
    Réponses: 6
    Dernier message: 22/11/2006, 09h58
  4. [WD9] Cliquer sur des enregistrements dans une table
    Par oz80 dans le forum WinDev
    Réponses: 2
    Dernier message: 15/12/2005, 20h11

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