之前的文章有提到如何自動化Access,但是就現在看來那個只是一個取巧的方法. 之前的方法有一個很嚴重的限制:不能傳遞參數給Access. 下面這個網址提供了更全面性的作法: http://support.microsoft.com/kb/306682/zh-tw 上述的方法藉由建立各種Office的物件,並使用run這個方法直接執行其中的VBA Code. 這使得自動化達到了一個更高的層次. ps.別忘了"Imports Microsoft.Office.Interop",沒引入這個NameSpace可是沒辦法動作的~ 其範例節錄如下(以Excel為例) Dim oExcel As Excel.ApplicationClass Dim oBook As Excel.WorkbookClass Dim oBooks As Excel.Workbooks 'Start Excel and open the workbook. oExcel = CreateObject("Excel.Application") oExcel.Visible = True oBooks = oExcel.Workbooks oBook = oBooks.Open("c:\book1.xls") 'Run the macros. <= 重點在這邊 oExcel.Run("DoKbTestWithParameter", "Hello from VB .NET Client") '第一個為sub名稱,第二個為要傳遞的參數 'Clean-up: Close the workbook and quit Excel. oBook.Close (False) System.Runtime.InteropServices.Marshal.ReleaseComObject (oBook) oBook = Nothing System.Runtime.InteropServices.Marshal.ReleaseComObject (oBooks) oBooks = Nothing oExcel.Quit() System.Runtime.InteropServices.Marshal.ReleaseComObject (oExcel) oExcel = Nothing
文章標籤
全站熱搜
創作者介紹
創作者 u8716054 的頭像
u8716054

~帥氣欣的帥氣旅程~

u8716054 發表在 痞客邦 留言(0) 人氣(1,477)