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

IHM Discussion :

Mise à jour requête d'un formulaire après suppression d'un enregistrement [AC-2007]


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 113
    Points : 52
    Points
    52
    Par défaut Mise à jour requête d'un formulaire après suppression d'un enregistrement
    Bonjour,

    J'ai un formulaire dont la source est un requête entre 2 tables.

    Je veux que l'utilisateur puisse éventuellement, à l'aide d'un bouton, supprimer un enregistrement.

    Voici le code bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim TextRubrique, TextDisposition As String
     
    Me.rubrique.SetFocus
    TextRubrique = Me.rubrique.Text
    Me.disposition.SetFocus
    TextDisposition = Me.disposition.Text
     
     
    DoCmd.RunSQL ("DELETE * FROM ma_requete WHERE " & _
    " ma_requete.rubrique = '" & TextRubrique & "' AND " & _
    " ma_requete.disposition = '" & TextDisposition & "' ")

    J'ai alors le message suivant :


    J'ai donc tenté de supprimer l'enregistrement dans la table qui alimente la requete (dans le code, on a donc "ma_table" à la place de "ma_requete").

    L'enregistrement est bien supprimé, il apparait alors ceci sur le formulaire :


    J'aimerais mettre à jour la requete pour que la suppression de l'enregistrement de la table source soit pris en compte et que la mention "supprimé" n'apparaisse plus dans les champs.

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Bonjour,

    En fonction de leur complexité, certaines requêtes sont modifiables et d'autres en lecture seule. Il faudrait donner ta requête pour voir ce qui la rend non modifiable

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 113
    Points : 52
    Points
    52
    Par défaut
    Ma requête me semble très simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT rubriques_dispositions.rubrique, rubriques_dispositions.disposition, rubriques_dispositions.code_lien, dispositions_SDAGEs.synthèse, rubriques_dispositions.commentaire
    FROM dispositions_SDAGEs INNER JOIN rubriques_dispositions ON dispositions_SDAGEs.code = rubriques_dispositions.disposition;
    Il y a donc 2 problématiques dans mon message :

    1- suppression directe d'un enregistrement dans la requête ci-dessus


    2- une fois la suppression, comment faire la MAJ du formulaire pour ne plus faire apparaitre l'enregistrement supprimé.

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Apparemment le DELETE ne vise qu'à supprimer des éléments de la table rubriques_dispositions donc il vaut mieux cibler cette table plutot que la requête.

    A dire vrai je n'avais jamais essayé de faire un delete sur une requete, il semble que ce soit interdit, probablement car dans certains cas cela peut être ambigü ou dévastateur (si par exemple la condition where appelle les 2 tables)

    Pour mettre à jour l'affichage, il suffit d'écrire ensuite me.refresh ou me.requery selon les cas (me.refresh est plus rapide, me.requery plus complet)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 113
    Points : 52
    Points
    52
    Par défaut
    Je fais au final un delete sur la seule table et avec me.requery, ça marche très bien. Merci !

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

Discussions similaires

  1. [AC-2007] Mise à jour de champs sur formulaire construit sur une requête
    Par Plume27 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 31/08/2013, 12h49
  2. Réponses: 2
    Dernier message: 22/01/2008, 22h40
  3. Réponses: 8
    Dernier message: 01/06/2006, 10h21
  4. Mise à jour champs modifés via formulaire
    Par Al3x dans le forum Requêtes
    Réponses: 2
    Dernier message: 02/01/2006, 17h31
  5. [formulaire] Mise à jour d'un sous formulaire
    Par virginie2 dans le forum IHM
    Réponses: 15
    Dernier message: 22/12/2005, 13h30

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