65.9K
CodeProject is changing. Read more.
Home

Execute Access 2003 Macros in SSIS Package

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.33/5 (2 votes)

Dec 29, 2006

viewsIcon

56673

Execute Access 2003 Macros in SSIS Package. How to call Access Macros in SSIS Package

Note: Change the Security Level for Access Macro, otherwise whenever the SSIS package
executes, it will popup a Security Warning Message. To avoid this, follow the instructions:
Open Access -- > Tools --> Macro --> Security
Click Security and change to Low Level.

Introduction

Basically to execute Access Macros in SSIS package, we need to download Microsoft.Office.Interop.Access DLL from Office XP PIAs. The file can be downloaded from the link at the top of this article.

Using the code

  1. Extract the Microsoft.Office.Interop.Access DLL from Oxppia.exe
  2. Drag and Drop Microsoft.Office.Interop.Access DLL to Global Assembly Directory(GAC)
    • C:\WINNT\assembly for Windows 2000
    • C:\WINDOWS\assembly for Windows XP and Windows 2003
  3. Copy paste Microsoft.Office.Interop.Access to
    • C:\WINNT\Microsoft.NET\Framework\v2.0.50727 for Windows 2000
    • C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 for Windows XP and Windows 2003
  4. Add DLL reference in the Script Task
  5. Add the code given below
  6. Create a New Project in SSIS
  7. Drag and Drop the Script Task
  8. Copy Paste the code in script task editor

Imports Microsoft.Office.Interop.Access

Try
    Dim objAccess As New Access.Application
    objAccess.OpenCurrentDatabase("D:\TestMacro.mdb", False)    
        ' Add the Access File Path
    objAccess.DoCmd.RunMacro("Macro1") 
        ' Replace  Macro1 with the name of your macro
    objAccess.CloseCurrentDatabase()
    objAccess.Quit(Access.AcQuitOption.acQuitSaveNone)
    objAccess = Nothing
    Catch ex As Exception
    System.Windows.Forms.MessageBox.Show(ex.ToString())
End Try

Dts.TaskResult = Dts.Results.Success