各モジュールをテキストファイルに保存

広告

広告

解説

フォーム・レポート・独立の各モジュールをテキストファイルに保存。

ソース

Public Sub SaveModules(strMdbName As String, strPw As String, strExpFile As String)
    Dim dbs As DAO.Database
    Dim objAcc As Access.Application
    Dim mdl As Module
    Dim docWork As DAO.Document
    Dim frm As Form
    Dim rpt As Report

    On Error Resume Next

' リストを出力するファイル名
    'Const FILENAME = strExpFile
    
    Open strExpFile For Output As #100
    Print #100, "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
    Print #100, "■     MDB Name : " & strMdbName
    Print #100, "■    CreateDay : " & Now
    Print #100, "■"
    Print #100, "■    Copyright (c) 1997-20xx 7key All Rights Reserved."
    Print #100, "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
    Print #100, ""
    Print #100, ""
    Print #100, "■■■  MODULES   ■■■■■■■■■■■■■■■■■■■■■■■■■■"
    Print #100, ""
    Print #100, ""
    
    Set dbs = DBEngine.Workspaces(0).OpenDatabase(strMdbName, False, False, ";PWD=" & strPw)
    Set objAcc = GetObject(strMdbName)
    
    For Each docWork In dbs.Containers!Modules.Documents
        objAcc.DoCmd.OpenModule docWork.Name
        Set mdl = objAcc.Modules(docWork.Name)
        Print #100, "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
        Print #100, "□ Module Name : " & docWork.Name
        Print #100, "□     Created : " & docWork.DateCreated
        Print #100, "□    Modified : " & docWork.LastUpdated
        Print #100, "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
        Print #100, ""
        Print #100, mdl.Lines(1, mdl.CountOfLines)
        objAcc.DoCmd.Close acModule, docWork.Name
    Next

    Print #100, ""
    Print #100, ""
    Print #100, "■■■  FORMS   ■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
    Print #100, ""
    Print #100, ""
    
    For Each docWork In dbs.Containers!Forms.Documents
        objAcc.DoCmd.OpenForm docWork.Name, acDesign
        Set frm = objAcc.Forms(docWork.Name)
        If frm.HasModule Then
            Set mdl = frm.Module
            Print #100, "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
            Print #100, "□ Module Name : " & docWork.Name
            Print #100, "□     Created : " & docWork.DateCreated
            Print #100, "□    Modified : " & docWork.LastUpdated
            Print #100, "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
            Print #100, ""
            Print #100, mdl.Lines(1, mdl.CountOfLines)
        End If
        objAcc.DoCmd.Close acForm, docWork.Name
    Next

    Print #100, ""
    Print #100, ""
    Print #100, "■■■  REPORTS   ■■■■■■■■■■■■■■■■■■■■■■■■■■■"
    Print #100, ""
    Print #100, ""
    
    For Each docWork In dbs.Containers!Reports.Documents
        objAcc.DoCmd.OpenReport docWork.Name
        Set rpt = objAcc.Reports(docWork.Name)
        If rpt.HasModule Then
            Set mdl = rpt.Module
            Print #100, "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
            Print #100, "□ Module Name : " & docWork.Name
            Print #100, "□     Created : " & docWork.DateCreated
            Print #100, "□    Modified : " & docWork.LastUpdated
            Print #100, "□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□"
            Print #100, ""
            Print #100, mdl.Lines(1, mdl.CountOfLines)
        End If
        objAcc.DoCmd.Close acReport, docWork.Name
    Next
    
    Close #100
    dbs.Close
    Set dbs = Nothing
    objAcc.CloseCurrentDatabase
    Set objAcc = Nothing

End Sub

広告

Copyright (C) 2003-2006 七鍵 key@do.ai 初版:2003年07月07日 最終更新:2006年08月08日