1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| Sub SaveVBCode(ByVal NomFichier As String)
Dim obj As Access.AccessObject
Dim IdFile As Integer
' On vérifie si le fichier existe déjà...
If Dir(NomFichier) <> "" Then
If MsgBox("Le fichier existe déjà. Souhaitez-vous le remplacer ?", _
vbQuestion + vbYesNo + vbDefaultButton2, "Export Modules") = vbNo Then
Exit Sub
End If
End If
' Ouvrir le fichier texte
IdFile = FreeFile
Open NomFichier For Output As #IdFile
' Traiter tous les modules un par un
For Each obj In CurrentProject.AllModules
DoCmd.OpenModule obj.Name
ExportVBCode "MODULE", Application.Modules(obj.Name), IdFile
DoCmd.Close acModule, obj.Name
Next
' Traiter tous les formulaires un par un
For Each obj In CurrentProject.AllForms
DoCmd.OpenForm obj.Name, acDesign
If Forms(obj.Name).HasModule Then
ExportVBCode "FORM MODULE", Forms(obj.Name).Module, IdFile
End If
DoCmd.Close acForm, obj.Name
Next
' Traiter tous les états un par un
For Each obj In CurrentProject.AllReports
DoCmd.OpenReport obj.Name, acDesign
If Reports(obj.Name).HasModule Then
ExportVBCode "REPORT MODULE", Reports(obj.Name).Module, IdFile
End If
DoCmd.Close acReport, obj.Name
Next
' On ferme !
Close #IdFile
MsgBox "Opération terminée !", vbInformation, "Code VB exporté"
End Sub
Sub ExportVBCode( _
ByVal Titre As String, _
vbMod As Access.Module, _
ByVal IdFile As Integer)
Print #IdFile, "' ----------"
Print #IdFile, "' " & Titre & ": " & vbMod.Name
Print #IdFile, "' ----------"
Print #IdFile, ""
Print #IdFile, vbMod.Lines(1, vbMod.CountOfLines)
Print #IdFile, ""
Print #IdFile, ""
End Sub |
Partager