Suppression manuelle impossible des enregistrements d'une requête

Résolu/Fermé
BiankaBo Messages postés 51 Date d'inscription lundi 16 avril 2018 Statut Membre Dernière intervention 31 janvier 2024 - 13 nov. 2020 à 15:27
BiankaBo Messages postés 51 Date d'inscription lundi 16 avril 2018 Statut Membre Dernière intervention 31 janvier 2024 - 18 nov. 2020 à 21:45
Bonjour à vous!! :)

J'ai encore un souci.. J'ai une requête A qui contient certaines informations en lien avec la requête B. Elles sont conçues spécifiquement pour un formulaire construit à partir de la requête A et où un sous-formulaire construit avec la requête B est inclus.

J'ai constaté mon problème lorsque j'ai construit un bouton commande "Supprimer" avec la méthode SetRecord.Delete. En effet, je souhaite que l'enregistrement de mon formulaire principal s'efface, ainsi que tous les éléments contenus dans le sous-formulaire. Par contre, lorsque j'appuie sur mon bouton, rien ne se passe, rien ne s'efface..

J'ai bel et bien coché "Effacer en cascade les enregistrements correspondants" dans mes relations, mais ça ne marche pas.

En investiguant un peu plus, je suis allée voir mes requêtes A et B. Lorsque je supprime manuelle un enregistrement directement dans la requête A, tout semble avoir été supprimé pour cette requête, mais quand je rafraîchie, surprise il revient. D'un autre côté, quand je tente de faire la même chose dans ma requête B, l'option "supprimer" n'est même pas disponible.. Je crois que tout ce joue dans ma requête B qui n'accepte pas la suppression de mes données.

Qu'est-ce qui peut empêcher la suppression d'un enregistrement dans une requête?
Est-ce la façon que je l'ai construite qui nuit à cette action?

Merci beaucoup de prendre quelques minutes pour m'aider, je suis si près du but final!

Code de ma requête A:
SELECT [08-DÉPENSES_SAL_RÉGUL].No_DSR, [08-DÉPENSES_SAL_RÉGUL].NoCE_DSR, 
[12-CORPS_EMPLOI].Titre_CE, [08-DÉPENSES_SAL_RÉGUL].MatYe_DSR, 
[08-DÉPENSES_SAL_RÉGUL].NomYe_DSR, [08-DÉPENSES_SAL_RÉGUL].DtDeb_DSR, 
[08-DÉPENSES_SAL_RÉGUL].DtFin_DSR, [08-DÉPENSES_SAL_RÉGUL].NbJrs_DSR, 
[08-DÉPENSES_SAL_RÉGUL].Type_DSR, [08-DÉPENSES_SAL_RÉGUL].Ind_DSR, 
[08-DÉPENSES_SAL_RÉGUL].UnCal_DSR, [08-DÉPENSES_SAL_RÉGUL].Cout_DSR, 
[08-DÉPENSES_SAL_RÉGUL].Rem_DSR, [08-DÉPENSES_SAL_RÉGUL].DRE_DSR, 
[15-DONNÉES_REL_EMPLOI].Date_DRE, [15-DONNÉES_REL_EMPLOI].NDest_DRE, 
[15-DONNÉES_REL_EMPLOI].CDest_DRE, [15-DONNÉES_REL_EMPLOI].No_DRE, 
[15-DONNÉES_REL_EMPLOI].BCal_DRE, [15-DONNÉES_REL_EMPLOI].DCal_DRE, 
[12-CORPS_EMPLOI].NoFAM_CE, [08-DÉPENSES_SAL_RÉGUL].UnCal_DSR, 
[08-DÉPENSES_SAL_RÉGUL].EchSal_DSR, [08-DÉPENSES_SAL_RÉGUL].PourC_DSR, 
[08-DÉPENSES_SAL_RÉGUL].Tx1_DSR, 
[08-DÉPENSES_SAL_RÉGUL].Echo1_DSR, [08-DÉPENSES_SAL_RÉGUL].DEff1_DSR, 
[08-DÉPENSES_SAL_RÉGUL].Tx2_DSR, 
[08-DÉPENSES_SAL_RÉGUL].Echo2_DSR, [08-DÉPENSES_SAL_RÉGUL].DEff2_DSR, 
[08-DÉPENSES_SAL_RÉGUL].Tx3_DSR, [08-DÉPENSES_SAL_RÉGUL].Echo3_DSR, 
[08-DÉPENSES_SAL_RÉGUL].DEff3_DSR, [08-DÉPENSES_SAL_RÉGUL].CBrut_DSR, 
[08-DÉPENSES_SAL_RÉGUL].CVac_DSR, [08-DÉPENSES_SAL_RÉGUL].CAvSoc_DSR, 
[08-DÉPENSES_SAL_RÉGUL].CPyeur_DSR, [08-DÉPENSES_SAL_RÉGUL].Jrs1_DSR, 
[08-DÉPENSES_SAL_RÉGUL].Jrs2_DSR, [08-DÉPENSES_SAL_RÉGUL].Jrs3_DSR, 
[08-DÉPENSES_SAL_RÉGUL].TxVac_DSR, [08-DÉPENSES_SAL_RÉGUL].TxAvSco_DSR, 
[08-DÉPENSES_SAL_RÉGUL].TxPyeur_DSR
FROM [12-CORPS_EMPLOI] INNER JOIN ([08-DÉPENSES_SAL_RÉGUL] 
LEFT JOIN [15-DONNÉES_REL_EMPLOI] 
ON [08-DÉPENSES_SAL_RÉGUL].No_DSR = [15-DONNÉES_REL_EMPLOI].NoDSR_DRE) 
ON [12-CORPS_EMPLOI].No_CE = [08-DÉPENSES_SAL_RÉGUL].NoCE_DSR;




Code de ma requête B:
SELECT [08-DÉPENSES_SAL_RÉGUL].No_DSR, [08-DÉPENSES_SAL_RÉGUL].NoCE_DSR, 
[08-DÉPENSES_SAL_RÉGUL].MatYe_DSR, [08-DÉPENSES_SAL_RÉGUL].NomYe_DSR, 
[08-DÉPENSES_SAL_RÉGUL].DtDeb_DSR, [08-DÉPENSES_SAL_RÉGUL].DtFin_DSR, 
[08-DÉPENSES_SAL_RÉGUL].NbJrs_DSR, [08-DÉPENSES_SAL_RÉGUL].Type_DSR, 
[08-DÉPENSES_SAL_RÉGUL].Ind_DSR, [08-DÉPENSES_SAL_RÉGUL].UnCal_DSR, 
[08-DÉPENSES_SAL_RÉGUL].Cout_DSR, [14-PONDÉRATION_DSR].No_PO, 
[14-PONDÉRATION_DSR].NoAL_PO, [14-PONDÉRATION_DSR].Pond_PO, 
[Cout_DSR]*[Pond_PO]/100 AS NET_DSR, [Ind_DSR]*[Pond_PO]/100 
AS INDNET_DSR, [12-CORPS_EMPLOI].Abr_CE, [08-DÉPENSES_SAL_RÉGUL].DRE_DSR, 
[15-DONNÉES_REL_EMPLOI].BCal_DRE, [15-DONNÉES_REL_EMPLOI].DCal_DRE
FROM [12-CORPS_EMPLOI] 
INNER JOIN (([08-DÉPENSES_SAL_RÉGUL] INNER JOIN [14-PONDÉRATION_DSR] 
ON [08-DÉPENSES_SAL_RÉGUL].No_DSR = [14-PONDÉRATION_DSR].NoDSR_PO) 
LEFT JOIN [15-DONNÉES_REL_EMPLOI] 
ON [08-DÉPENSES_SAL_RÉGUL].No_DSR = [15-DONNÉES_REL_EMPLOI].NoDSR_DRE) 
ON [12-CORPS_EMPLOI].No_CE = [08-DÉPENSES_SAL_RÉGUL].NoCE_DSR;


Vraiment désolée pour la lourdeur de l'information..
A voir également:

7 réponses

yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
13 nov. 2020 à 16:36
bonjour,

le formulaire affiche-t-il les enregistrements en continu, avec chacun un bouton "Supprimer"?

si tu as coché "Effacer en cascade les enregistrements correspondants" dans tes relations, il devrait être suffisant, sans passer par une requête, de supprimer un enregistrement dans une table, et les enregistrements liés des autres tables devraient être automatiquement effacés. cela fonctionne-t-il?
0
BiankaBo Messages postés 51 Date d'inscription lundi 16 avril 2018 Statut Membre Dernière intervention 31 janvier 2024
13 nov. 2020 à 17:07
Bonjour,

Bien que je ne sois pas totalement débutante en la matière, mais presque, je manque un peu de vocabulaire à ce niveau.. Je ne comprend pas bien ta question, que veux-tu dire par "affichage des enregistrements en continu"?

Je ne sais pas si ça peut aider à répondre à la question, mais voici une image de ce que mon formulaire a l'air : https://accounts.google.com/ServiceLogin?service=wise&passive=1209600&continue=https://drive.google.com/file/d/1sOTS3pLvYgBhluGMZpCdvuHeAgC5u_aG/view?usp%3Dsharing&followup=https://drive.google.com/file/d/1sOTS3pLvYgBhluGMZpCdvuHeAgC5u_aG/view?usp%3Dsharing

La section "Attribution de mesures" constitue mon sous-formulaire.

Merci beaucoup!
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
13 nov. 2020 à 17:25
l'image n'est pas publique.

le formulaire affiche-t-il plusieurs enregistrements, avec chacun un bouton "Supprimer"?
0
BiankaBo Messages postés 51 Date d'inscription lundi 16 avril 2018 Statut Membre Dernière intervention 31 janvier 2024
Modifié le 13 nov. 2020 à 19:12
Oupss.. voilà j'ai mis le lien public maintenant.. tu devrais avoir accès à la photo si tu le veux.

Pour répondre à ta dernière question, non.
En fait, il y a un seul bouton dans le formulaire principal et j'avais espoir que tous les enregistrements contenus dans le sous-formulaire (affiché sous forme de feuille de données) s'effaceraient également.. Mais ça ne fonctionne pas..
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
13 nov. 2020 à 20:06
si tu as coché "Effacer en cascade les enregistrements correspondants" dans tes relations, il devrait être suffisant, sans passer par une requête, de supprimer un enregistrement dans une table, et les enregistrements liés des autres tables devraient être automatiquement effacés. cela fonctionne-t-il?
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
13 nov. 2020 à 20:09
il sera alors sans doute possible de modifier l'action associée au bouton de façon à faire la suppression sans utiliser les deux requêtes, qui ne me semble pas faites pour permettre une suppression.
0
BiankaBo Messages postés 51 Date d'inscription lundi 16 avril 2018 Statut Membre Dernière intervention 31 janvier 2024
13 nov. 2020 à 20:29
En fait , pour ta première question, non ça ne fonctionne pas. La case est bel et bien cochée, mais rien ne se passe.

Alors si je comprends bien ton dernier commentaire, je pourrais modifier mon bouton pour qu'il supprime directement dans la table plutôt que dans la requête?! Ça aurait beaucoup de sens étant donné que la suppression à même la table de base fonctionne. Saurais-tu me dire quel code vba utiliser pour faire ceci?
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
13 nov. 2020 à 21:21
peux-tu partager ton fichier?

bonne nouvelle que la suppression à même la table fonctionne.

je ne comprends pas ce qui ne fonctionne pas: "La case est bel et bien cochée, mais rien ne se passe".
0
BiankaBo Messages postés 51 Date d'inscription lundi 16 avril 2018 Statut Membre Dernière intervention 31 janvier 2024
13 nov. 2020 à 21:39
Je trouve étrange aussi que ça ne fonctionne pas, mais si on peut contourner la chose, ça me va très bien!!

Malheureusement, je ne peux pas partager mon fichier car il contient maintenant des données réelles et confidentielles..

Est-ce qu'il y a une façon de programmer la suppression d'un enregistrement précise (à partir de sa clé primaire) directement dans sa table de base par le biais du bouton du formulaire en vba?
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > BiankaBo Messages postés 51 Date d'inscription lundi 16 avril 2018 Statut Membre Dernière intervention 31 janvier 2024
13 nov. 2020 à 21:48
je n'ai pas compris dans quel cas cela fonctionne et dans quel cas cela ne fonctionne pas.

tu peux, si tu le souhaites, créer une base de données avec des données de test.

bien sûr, il est possible de programmer la suppression d'un enregistrement précise (à partir de sa clé primaire) directement dans sa table de base par le biais du bouton du formulaire en vba.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BiankaBo Messages postés 51 Date d'inscription lundi 16 avril 2018 Statut Membre Dernière intervention 31 janvier 2024
15 nov. 2020 à 17:20
En fait, la suppression à partir du formulaire ne fonctionne pas ni celle à partir de la requête. Par contre, la suppression à partir de la table de base fonctionne parfaitement. C'est pour ça que je souhaite savoir par quel code je pourrais supprimer l'enregistrement directement dans la table de base.

Je vais regarder pour vous transmettre un fichier avec des données test cette semaine. Merci beaucoup!
0
BiankaBo Messages postés 51 Date d'inscription lundi 16 avril 2018 Statut Membre Dernière intervention 31 janvier 2024
17 nov. 2020 à 19:52
Voici donc ma base de données avec les renseignements fictifs à l'intérieur.

https://drive.google.com/file/d/1kEsAleQxuZSvAXArJzlhIeQv80NvZCTN/view?usp=sharing

Le formulaire principal que je parle est celui qui porte le nom "08_01M-SAISIR_SAL_RÉGUL_ETE", c'est le bouton "SUPPRIMER" en bas du formulaire qui ne fonctionne pas.

En ce qui concerne les requêtes qui compose le formulaire, il s'agit de la requête "08_01-SAISIR_SAL_RÉGUL" pour la requête A et "08-14_02-SAISIR_SAL_RÉGUL" pour la requête B que je vous ai parlé. Je crois que je ne vous avais pas donné la bonne requête B au départ, mais le problème est le même..

Donc, le bouton "SUPPRIMER" n'a aucun effet. Après avoir testé le bouton, lorsque vous ouvrez une seconde fois le formulaire, vous constaterez que les données sont toujours présentes.

Par contre, si je tente d'effacer les données à partir de la table de base 08-DÉPENSES_SAL_RÉGUL, tout fonctionne. C'est donc pour cela que je souhaite avoir le code qui me permet d'effacer les données à même la table de base.

J'attends de vos nouvelles.

Merci beaucoup!
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
17 nov. 2020 à 23:30
bonjour,
je n'ai pas pu tester, car ta base n'est pas compatible avec le Windows (64 bits) que j'utilise.
je suggère de remplacer
Me.Recordset.Delete

par
Dim sql As String
sql = "delete from 08-DÉPENSES_SAL_RÉGUL where No_DSR = " + CStr(Me.Texte109)
DoCmd.RunSQL sql
0
BiankaBo Messages postés 51 Date d'inscription lundi 16 avril 2018 Statut Membre Dernière intervention 31 janvier 2024
18 nov. 2020 à 21:45
Ça a très bien fonctionné!

Merci beaucoup!!
0