On Error Resume Next Dim accessApp Set accessApp = CreateObject("Access.Application") accessApp.OpenCurrentDatabase "C:\Users\alexi\Documents\projects\timetrack-pro\db\TimeTrackPro.accdb" accessApp.Visible = True Dim vbProj Set vbProj = accessApp.VBE.VBProjects(1) WScript.Echo "=== Deleting standard modules ===" ' Supprimer les modules standards Form_* Dim modulesToDelete modulesToDelete = Array("Form_frm_Accueil", "Form_frm_Clients", "Form_frm_Projets", "Form_frm_SaisieTemps", "Form_frm_Historique") Dim i, comp For i = LBound(modulesToDelete) To UBound(modulesToDelete) For Each comp In vbProj.VBComponents If comp.Name = modulesToDelete(i) And comp.Type = 1 Then ' 1 = Standard Module vbProj.VBComponents.Remove comp WScript.Echo "Deleted: " & modulesToDelete(i) Exit For End If Next Next WScript.Sleep 1000 WScript.Echo "" WScript.Echo "=== Creating form modules ===" ' Recréer les modules de formulaire Dim formNames formNames = Array("frm_Accueil", "frm_Clients", "frm_Projets", "frm_SaisieTemps", "frm_Historique") For i = LBound(formNames) To UBound(formNames) WScript.Echo "Processing " & formNames(i) & "..." ' Ouvrir en mode Design VISIBLE accessApp.DoCmd.OpenForm formNames(i), 2 ' acDesign, pas hidden WScript.Sleep 1000 ' Essayer de créer le module On Error Resume Next Err.Clear ' Méthode 1: Via HasModule accessApp.Forms(formNames(i)).HasModule = True If Err.Number = 0 Then WScript.Echo " -> Created via HasModule" Else WScript.Echo " -> HasModule failed: " & Err.Description Err.Clear ' Méthode 2: Via DoCmd ViewCode accessApp.DoCmd.OpenForm formNames(i), 2 WScript.Sleep 500 accessApp.DoCmd.RunCommand 401 ' acCmdViewCode - ouvre l'éditeur VBA du formulaire WScript.Sleep 1000 WScript.Echo " -> Opened code view" End If ' Fermer le formulaire accessApp.DoCmd.Close 2, formNames(i), 1 ' acSaveYes WScript.Sleep 500 Next WScript.Sleep 1000 WScript.Echo "" WScript.Echo "=== Verification ===" For Each comp In vbProj.VBComponents WScript.Echo comp.Name & " - Type: " & comp.Type Next WScript.Echo "" WScript.Echo "Done! Press OK to close Access." accessApp.CloseCurrentDatabase accessApp.Quit Set accessApp = Nothing