如何从VBA打印模块描述?

时间:2017-10-20 05:08:19

标签: vba ms-access access-vba

问题

使用Access 2010数据库的文档例程。在数据库内有许多模块和类。我可以很容易地打印这些名称以及Get / Set属性,但是还没有找到通过VBE的模块属性面板检索描述输入的方法。

背景

使用Application.VBE.VBProjects集合,我可以获得模块和名称的名称。使用

的课程
'iterate through modules
For Each vbComp In vbProj.VBComponents
    Set vbMod = vbComp.CodeModule

    'fetch description
    Select Case TypeName(vbMod)
        Case "CodeModule" 'module
            'description = CurrentDb.Containers("Modules").Documents(vbMod).Properties("Description")
        Case Else
            description = ""
    End Select

    Debug.Print vbComp.Name
    Debug.Print description
Next

CurrentDb.Containers("Modules").Documents(vbMod).Properties("Description")行错误了。这是获得描述属性的一个尝试,但没有骰子。

通过查看Daniel Pineault's例程得到了这一点,但没有搜索显示如何获取模块/类描述。你可以得到项目描述&表描述,但没有模块/类描述。检索它们将大大减少文档编制时间。

问题

有关如何检索这些说明的任何想法?

1 个答案:

答案 0 :(得分:3)

你快到了。 Documents集合需要名称(或索引),而不是对象。使用VBComp.NamevbMod.Name

'fetch description
Select Case TypeName(vbMod)
    Case "CodeModule" 'module
        ' Handle modules without Description property
        On Error Resume Next
        Description = CurrentDb.Containers("Modules").Documents(VBComp.Name).Properties("Description")
        If Err.Number <> 0 Then Description = ""
        On Error GoTo 0

修改
实际上,错误处理是更重要的部分。

  • 没有说明的标准模块没有空白&#34;描述&#34;财产,他们根本没有财产。
  • 表单/报告模块也会显示在此Case中,但它们不会包含在Containers("Modules")中。这些模块没有单独的描述。如果您想要打印表单/报告说明,则必须添加另一个案例区别。