簡體   English   中英

如何從vb.net運行MS Access宏?

[英]How to run ms access macro from vb.net?

我正在嘗試從vb.net 2010從ms Access 2010運行宏。

我使用的代碼是

Dim oAccess As Access.ApplicationClass

        'Start Access and open the database.
        oAccess = CreateObject("Access.Application")
        oAccess.Visible = True
        oAccess.OpenCurrentDatabase("C:\Users\Yuganshu\Desktop\New folder (4)\WindowsApplication1\db.mdb", False)

        'Run the macros.
        oAccess.Run("Macro1")
        'oAccess.Run("DoKbTestWithParameter", "Hello from VB .NET Client")

        'Clean-up: Quit Access without saving changes to the database.
        oAccess.DoCmd().Quit(Access.AcQuitOption.acQuitSaveNone)
        System.Runtime.InteropServices.Marshal.ReleaseComObject(oAccess)
        oAccess = Nothing

這給了我以下錯誤:

無法將類型為“ Microsoft.Office.Interop.Access.ApplicationClass”的COM對象轉換為類類型為“ WindowsApplication1.Access.ApplicationClass”的COM對象。 表示COM組件的類型的實例不能轉換為不表示COM組件的類型。 但是,只要基礎COM組件支持對接口IID的QueryInterface調用,就可以將它們強制轉換為接口。

我不知道該怎么辦。

您需要添加正確的COM參考。 單擊項目菜單欄,然后​​->添加參考。 在“類型庫”下查找“ Microsoft Access 14.0”或計算機正在運行的任何版本。 然后添加以下語句。

Imports Microsoft.Office.Interop

Dim Access_Object As New Access.Application
Access_Object = CreateObject("Access.Application")
Access_Object.Application.Visible = True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM