- Test and helper VBS scripts for VBA MCP development - Technical reference documentation and PDFs - HTML form templates for all 5 forms - PowerShell and Python scripts for PDF/documentation generation Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
86 lines
2.3 KiB
Plaintext
86 lines
2.3 KiB
Plaintext
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
|