如何从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例程得知了这一点,但没有搜索显示如何获取模块/类描述。您可以在项目描述&表格描述中找到,但没有模块/类别描述。检索它们将显着缩短文档记录时间。
问题
如何获取这些描述的任何想法?
你几乎在那里。 Documents
集合需要一个名称(或索引),而不是一个对象。使用VBComp.Name
或vbMod.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
编辑:
其实,错误处理是比较重要的部分。
- 没有描述的标准模块没有空的“描述”属性,它们根本没有属性。
- 表单/报表模块也将显示在此
Case
中,但它们不包含在Containers("Modules")
中。这些模块没有单独的说明。如果您想要打印表单/报表说明,则必须添加另一个案例区分。
谢谢。优秀。使用Nz进行一次调整以处理丢失的描述'description = Nz(CurrentDb.Containers(“Modules”)。Documents(vbComp.Name).Properties(“Description”),“”)' – NWdev
'line error out'并没有描述你所得到的错误...给我们一些东西在这里工作 – jsotola