Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/10/2011, 10h47   #1
Nouveau Membre du Club
 
Inscription : décembre 2009
Messages : 113
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 113
Points : 25
Points : 25
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 :
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.
atech est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 13h20   #2
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 256
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

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

Informations forums :
Inscription : mai 2008
Messages : 1 256
Points : 1 872
Points : 1 872
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
nico84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 13h30   #3
Nouveau Membre du Club
 
Inscription : décembre 2009
Messages : 113
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 113
Points : 25
Points : 25
Ma requête me semble très simple :

Code :
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é.
atech est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 23h56   #4
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 256
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

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

Informations forums :
Inscription : mai 2008
Messages : 1 256
Points : 1 872
Points : 1 872
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)
nico84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 12h34   #5
Nouveau Membre du Club
 
Inscription : décembre 2009
Messages : 113
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 113
Points : 25
Points : 25
Je fais au final un delete sur la seule table et avec me.requery, ça marche très bien. Merci !
atech est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h38.


 
 
 
 
Partenaires

Hébergement Web