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

Access Discussion :

Supprimer enregistrement(s) d'une table qui contient champ de type " pièces jointe " par Requete


Sujet :

Access

  1. #1
    Nouveau membre du Club

    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Janvier 2016
    Messages : 34
    Points : 38
    Points
    38
    Billets dans le blog
    1
    Par défaut Supprimer enregistrement(s) d'une table qui contient champ de type " pièces jointe " par Requete
    Bonjour,

    J'aimerais supprimer des enregistrements de la table "clients" grâce à une requête Action-Suppression (sélection + suppression) ou commande VBA comme je le fait sur de nombreuses tables.
    Le hic , c'est que cette table client contient une pièce jointe (photo(s)).
    Quand je lance ma / mes requête(s), j'ai toujours le même message "Spécifiez la table contenant les enregistrements que vous voulez supprimer".

    Pour info : J'utilise un formulaire de sélection avec case à cocher basé sur une copie de ma table "Client".. Client_SELECT
    Une requête CLIENT_SELECTED sélectionne les clients cochés ... En lançant mes requêtes suppression , je supprime les enregistrements concernant les clients sélectionnés dans toutes les tables associés.
    Depuis que j'ai inséré ce champ Pièces jointes dans ma table "CLIENT" , je suis embêté....

    Dois-je passer par la gestion des DAO / Recordset que je maitrise mal ... ?

    Merci d'avance pour votre contribution

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonsoir,
    Quand je lance ma / mes requête(s), j'ai toujours le même message "Spécifiez la table contenant les enregistrements que vous voulez supprimer".
    actuellement, comment exécutes-tu les requêtes : si c'est à partir d'un formulaire tu dois donc utiliser le VBA ou des macros ?
    Peux-tu nous montrer ce code ?
    Merci.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Nouveau membre du Club

    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Janvier 2016
    Messages : 34
    Points : 38
    Points
    38
    Billets dans le blog
    1
    Par défaut
    Et bien il existe un simple bouton "supprimer" sur mon formulaire.
    Sur clique , j'utilise une macro qui fait appel à une fonction VBA DELETE_CLIENT()


    Function DELETE_CLIENT()
    DoCmd.RunSQL "DELETE DISTINCTROW TABLE_CLIENT.* FROM TABLE_CLIENT INNER JOIN R_CLIENT_SELECTED ON TABLE_CLIENT.CLIENT_ID = R_CLIENT_SELECTED.CLIENT_ID;"

    DoCmd.RunSQL "DELETE DISTINCTROW COMMANDE_CLIENT.* FROM COMMANDE_CLIENT INNER JOIN R_CLIENT_SELECTED ON COMMANDES_CLIENT.CLIENT_ID = R_CLIENT_SELECTED.CLIENT_ID;"

    DoCmd.RunSQL"........................................

    End Function

    MERCI

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    - le code est-il complet ?
    - sur quelle requête survient le message ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Nouveau membre du Club

    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Janvier 2016
    Messages : 34
    Points : 38
    Points
    38
    Billets dans le blog
    1
    Par défaut
    non , Le code n'est pas complet. J'utilise 6 requêtes de ce genre pour supprimer les informations du client contenu dans d'autres tables.
    Pour la gestion de la pièce jointe du client, sachant que les pièces jointes sont plus compliqué à gérer, j'ai préféré utiliser une table CLIENT_PICS , 2 champs : ID_CLIENT et pièce jointes.

    La 7éme requête pose problème :


    DoCmd.RunSQL "DELETE DISTINCTROW TABLE_CLIENT_PICS.* FROM TABLE_CLIENT_PICS INNER JOIN R_CLIENT_SELECTED ON TABLE_CLIENT_PICS.CLIENT_ID = R_CLIENT_SELECTED.CLIENT_ID;"

    Merci

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonsoir,
    essaie sans jointure mais avec In :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "DELETE DISTINCTROW TABLE_CLIENT_PICS.* FROM TABLE_CLIENT_PICS WHERE TABLE_CLIENT_PICS.client_id In (SELECT client_id from [R_CLIENT_SELECTED]);"
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  7. #7
    Nouveau membre du Club

    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Janvier 2016
    Messages : 34
    Points : 38
    Points
    38
    Billets dans le blog
    1
    Par défaut
    Super !

    Ca fonctionne ! Merci
    Apparemment la jointure ne fait pas bon ménage pour ce type de requête.

  8. #8
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Apparemment la jointure ne fait pas bon ménage pour ce type de requête.
    oui, pour les requêtes de suppression c'est même à éviter.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/11/2014, 00h08
  2. une table qui contient un champ modifiable
    Par john_wili dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 22/02/2009, 12h08
  3. Dupliquer une table qui contient Beaucoup de données
    Par kalder dans le forum Adaptive Server Enterprise
    Réponses: 3
    Dernier message: 31/10/2008, 16h56
  4. [MySQL] Afficher les entrées d'une table qui contient un mot précis
    Par anarchoi dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 02/05/2007, 21h15
  5. suppression dans une table qui contient une clé etrangère
    Par zana74 dans le forum Décisions SGBD
    Réponses: 13
    Dernier message: 08/08/2006, 10h58

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