2012-10-22 86 views
3

是否可以使用C#使用Microsoft Access中的Interop庫以與Word,Excel或PowerPoint類似的方式創建新宏?在其他應用程序中,您可以訪問Microsoft.Vbe.Interop._VBComponent,它允許您通過Document,WorksheetPresentation類注入新的宏。它看起來不像Access有類似的東西。 Access有一個AllMacros列表,但它似乎是隻讀的。我知道如何在項目中執行宏,但我需要能夠動態地添加宏。如果有人能指出我的正確方向,我將不勝感激。通過Interop創建Microsoft Access的宏

回答

2

從answers.microsoft.com摘自:

在Access宏是一個特殊的數據庫對象,與其他Office應用程序,其中一個宏簡直是無參數的VBA程序。據我所知,你不能以編程方式創建一個Access宏。-HansV MVP(2011年4月27日)

有張貼在那說,你可以創建一個使用VB擴展庫的新代碼/ VBA對象same question另一個答案。

+0

太感謝你了,我整天都在尋找這方面的資料。 – Middas

5

由於HK1的回答,我能夠做到我所需要的。我想發佈我的代碼,因爲幾乎沒有任何關於如何執行此操作的信息。我會留下HK1的帖子作爲答案,因爲他是我的原因。

通過互操作編程添加VB模塊MS-訪問

try 
{ 
    Microsoft.Office.Interop.Access.Application accessApp = new Microsoft.Office.Interop.Access.Application(); 
    accessApp.Visible = true; 

    accessApp.OpenCurrentDatabase(filePath); 

    // Get the active VBProject item 
    VBProject project = accessApp.VBE.VBProjects.Item(1); 

    VBComponent module = project.VBComponents.Add(vbext_ComponentType.vbext_ct_StdModule); 

    module.CodeModule.AddFromString(script); 
} 
catch (Exception ex) 
{ 
    // Trust or the VBA Project Module has not been enabled. 
} 
+0

我試過這個,但是下面的異常是由互操作引發的。 「附加信息:對Visual Basic項目的編程訪問不受信任。」 –

相關問題