2017-10-20 85 views
1

問題如何從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例程得知了這一點,但沒有搜索顯示如何獲取模塊/類描述。您可以在項目描述&表格描述中找到,但沒有模塊/類別描述。檢索它們將顯着縮短文檔記錄時間。

問題

如何獲取這些描述的任何想法?

+0

'line error out'並沒有描述你所得到的錯誤...給我們一些東西在這裏工作 – jsotola

回答

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 

編輯:
其實,錯誤處理是比較重要的部分。

  • 沒有描述的標準模塊沒有空的「描述」屬性,它們根本沒有屬性。
  • 表單/報表模塊也將顯示在此Case中,但它們不包含在Containers("Modules")中。這些模塊沒有單獨的說明。如果您想要打印表單/報表說明,則必須添加另一個案例區分。
+0

謝謝。優秀。使用Nz進行一次調整以處理丟失的描述'description = Nz(CurrentDb.Containers(「Modules」)。Documents(vbComp.Name).Properties(「Description」),「」)' – NWdev