Bonjour,
Apparemment c'est bien le formulaire FrmAideMajMensuelle (dont la source est TMP_MAJMensuelle)
qui verrouille la table TMP_MAJMensuelle.
Ce simple test reproduit le problème.
Erreur 3211 : Le moteur de base de données n'a pas pu verrouiller la table 'TMP_MAJMensuelle' car elle est déjà utilisée par une autre personne ou un autre processus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub CmdTest_Click() DoCmd.Close acForm, "FrmAideMajMensuelle" CurrentDb.Execute "DROP TABLE TMP_MAJMensuelle" End Sub
A mon avis, la fermeture du formulaire ne peut avoir lieu qu'à la fin de l'événement "sur clic".
C'est à dire après être sortie de la procédure événementielle.
Or, comme l'instruction pour supprimer la table est dans cet événement, ça ne marchera jamais.
L'idée de Keita, de détacher le formulaire de sa source me paraît bonne.
Dans ma base de test, ça fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub CmdTest_Click() ' ... traitements ... ' On n'a plus besoin que FrmAideMajMensuelle soit lié à TMP_MAJMensuelle Me.RecordSource = "" ' On supprime la table et on ferme le formulaire CurrentDb.Execute "DROP TABLE TMP_MAJMensuelle" DoCmd.Close acForm, "FrmAideMajMensuelle" End Sub
A+
Partager