ffdba © DOWNLOAD

Option Base 0
Option Explicit

Dim path$
Dim DateTimeString$
Dim app As Access.Application

Private Sub SaveMDBObjectsAsText()
    Dim r As Reference
    DateTimeString = Format(Now(), "yyyymmddhhnn")
    path = CurrentProject.path & "\AS_TEXT_" & DateTimeString & "\"
    MkDir path
    Set app = New Access.Application
    SaveDataAccessPagesAsText
    SaveFormsAsText
    SaveReportsAsText
    SaveModulesAsText
    SaveQueriesAsText
    SaveMDBBase
    LoadDataAccessPagesFromText
    LoadFormsFromText
    LoadReportsFromText
    LoadModulesFromText
    LoadQueriesFromText
    On Error Resume Next
    With app
        With .CurrentProject
            path = .FullName
        End With
        
        For Each r In .References
            With r
                If Not .BuiltIn Then
                    app.References.Remove r
                End If
            End With
        Next r
        
        For Each r In References
            With r
                If Not .BuiltIn Then
                    app.References.AddFromGuid r.Guid, r.Major, r.Minor
                End If
            End With
        Next r
        
        .RunCommand acCmdCompileAndSaveAllModules
        .CloseCurrentDatabase
        .SysCmd 603, path, Replace(path, ".mdb", ".mde")
        .Quit
    End With
    Set app = Nothing
    MsgBox "All Done with Text Backup"
End Sub

Private Sub SaveDataAccessPagesAsText()
    Dim FileName$
    Dim Name$
    Dim DataAccessPage As AccessObject
    For Each DataAccessPage In CurrentProject.AllDataAccessPages
        Name = DataAccessPage.Name
        FileName = path & Name & ".txt"
        SaveAsText acDataAccessPage, Name, FileName
    Next DataAccessPage
End Sub

Private Sub SaveFormsAsText()
    Dim FileName$
    Dim Name$
    Dim Form As AccessObject
    For Each Form In CurrentProject.AllForms
        Name = Form.Name
        FileName = path & Name & ".txt"
        SaveAsText acForm, Name, FileName
    Next Form
End Sub

Private Sub SaveReportsAsText()
    Dim FileName$
    Dim Name$
    Dim Report As AccessObject
    For Each Report In CurrentProject.AllReports
        Name = Report.Name
        FileName = path & Name & ".txt"
        SaveAsText acReport, Name, FileName
    Next Report
End Sub

Private Sub SaveMacrosAsText()
    Dim FileName$
    Dim Name$
    Dim Macro As AccessObject
    For Each Macro In CurrentProject.AllMacros
        Name = Macro.Name
        FileName = path & Name & ".txt"
        SaveAsText acMacro, Name, FileName
    Next Macro
End Sub

Private Sub SaveModulesAsText()
    Dim FileName$
    Dim Name$
    Dim Module As AccessObject
    For Each Module In CurrentProject.AllModules
        Name = Module.Name
        FileName = path & Name & ".txt"
        SaveAsText acModule, Name, FileName
    Next Module
End Sub

Private Sub SaveQueriesAsText()
    Dim FileName$
    Dim Name$
    Dim GetQueryNames As ADODB.recordset
    Set GetQueryNames = CurrentProject.Connection.OpenSchema(adSchemaViews)
    With GetQueryNames
        Do While Not .EOF
            Name = .Fields("TABLE_NAME")
            FileName = path & Name & ".txt"
            SaveAsText acQuery, Name, FileName
            .MoveNext
        Loop
    End With
End Sub

Private Sub SaveMDBBase()
    Dim FileName$
    Dim Name$
    Name = Replace(CurrentProject.Name, CurrentProject.path, "")
    FileName = path & Name
    SaveAsText 6, "", FileName
    app.OpenCurrentDatabase FileName
End Sub

Private Sub LoadDataAccessPagesFromText()
    Dim FileName$
    Dim Name$
    Dim DataAccessPage As AccessObject
    For Each DataAccessPage In CurrentProject.AllDataAccessPages
        Name = DataAccessPage.Name
        FileName = path & Name & ".txt"
        app.LoadFromText acDataAccessPage, Name, FileName
    Next DataAccessPage
End Sub

Private Sub LoadFormsFromText()
    Dim FileName$
    Dim Name$
    Dim Form As AccessObject
    For Each Form In CurrentProject.AllForms
        Name = Form.Name
        FileName = path & Name & ".txt"
        app.LoadFromText acForm, Name, FileName
    Next Form
End Sub

Private Sub LoadReportsFromText()
    Dim FileName$
    Dim Name$
    Dim Report As AccessObject
    For Each Report In CurrentProject.AllReports
        Name = Report.Name
        FileName = path & Name & ".txt"
        app.LoadFromText acReport, Name, FileName
    Next Report
End Sub

Private Sub LoadModulesFromText()
    Dim FileName$
    Dim Name$
    Dim Module As AccessObject
    For Each Module In CurrentProject.AllModules
        Name = Module.Name
        FileName = path & Name & ".txt"
        app.LoadFromText acModule, Name, FileName
    Next Module
End Sub

Private Sub LoadMacrosFromText()
    Dim FileName$
    Dim Name$
    Dim Macro As AccessObject
    For Each Macro In CurrentProject.AllMacros
        Name = Macro.Name
        FileName = path & Name & ".txt"
        app.LoadFromText acMacro, Name, FileName
    Next Macro
End Sub

Private Sub LoadQueriesFromText()
    Dim FileName$
    Dim Name$
    Dim GetQueryNames As ADODB.recordset
    Set GetQueryNames = CurrentProject.Connection.OpenSchema(adSchemaViews)
    With GetQueryNames
        Do While Not .EOF
            Name = .Fields("TABLE_NAME")
            FileName = path & Name & ".txt"
            app.LoadFromText acQuery, Name, FileName
            .MoveNext
        Loop
    End With
End Sub

Back