Problemstellung:
Wie kann ich die Makros und deren Eigenschaften auslesen?
Auch wenn Makros buggy sind kann es doch mal vorkommen
das man diese zu Dokumentationszwecken auslesen will.
Ich habe mal 2 Lösungen vorbereitet.
1. Für jedes Makro wird eine eigene Textdatei geschrieben.
Private Sub Read_Makros1(sPath As String) Dim obj As Object Dim db As DAO.Database Dim FileName As String Set db = CurrentDb For Each obj In db.Containers("Scripts").Documents FileName = sPath & obj.Name & ".txt" Application.SaveAsText acMacro, obj.Name, FileName Next obj End Sub
Aufruf z.B.:
Read_Makros1 "H:\Dokumente\Access\"
Ergebnis:
2. Alle Makros werden in eine Textdatei geschrieben.
Private Sub Read_Makros2(sPath As String) Dim sMacroTXT As String Dim sTmpFileName As String Dim objMacro As Object Dim db As DAO.Database Dim fso, fsoMakroFile, TempFolder Const TemporaryFolder = 2 sMacroTXT = sPath & "DBMakros.txt" Set db = CurrentDb Set fso = CreateObject("Scripting.FileSystemObject") Set TempFolder = fso.GetSpecialFolder(TemporaryFolder) sTmpFileName = TempFolder & "\" & fso.GetTempName Set fso = CreateObject("Scripting.FileSystemObject") Set TempFolder = fso.GetSpecialFolder(TemporaryFolder) Set fsoMakroFile = fso.OpenTextFile(sMacroTXT, 2, True) fsoMakroFile.WriteLine "Alle Makros der Datenbank" For Each objMacro In db.Containers("Scripts").Documents fsoMakroFile.WriteBlankLines (1) fsoMakroFile.WriteLine "'Makro: " & objMacro.Name fsoMakroFile.WriteBlankLines (1) Application.SaveAsText acMacro, objMacro.Name, sTmpFileName fsoMakroFile.Write fso.OpenTextFile(sTmpFileName, 1).ReadAll fso.DeleteFile sTmpFileName Next objMacro fsoMakroFile.Close: Set fsoMakroFile = Nothing Set fso = Nothing db.Close: Set db = Nothing End Sub
Aufruf z.B.:
Read_Makros2 "H:\Dokumente\Access\"
Ergebnis:
Ähnliche Artikel
Weiterlesen...