Solved

Run Access Macro from Vb.net

Posted on 2010-08-13
4
2,412 Views
Last Modified: 2012-05-10
When I run the following code to run an access macro from vb.net I get "Microsoft Office Access can't open the database because it is missing, or opened exclusively by another user."

The database is not missing or opened.
Private Sub RunMacro()

        Dim oAccess As Object

        Try

            oAccess = CreateObject("Access.Application")

            ' Open the database

            oAccess.OpenCurrentDatabase(PickTickMDBLocation, False)



            Try

                oAccess.DoCmd.RunMAcro("test")

                oAccess.DoCmd.Maximize()

                oAccess.Visible = False

            Catch ex As Exception

                sErrNo = Err.Number.ToString

                sError = "RunMacro" & vbCrLf & Err.Description & " " & "ErrNo: " & sErrNo

                dispError(sError)

            Finally

                oAccess.CloseCurrentDatabase()

                oAccess.Quit()

                System.Runtime.InteropServices.Marshal.ReleaseComObject(oAccess)

                GC.Collect()

            End Try

        Catch ex As Exception

            sErrNo = Err.Number.ToString

            sError = "RunMacro" & vbCrLf & Err.Description & " " & "ErrNo: " & sErrNo

            dispError(sError)

        End Try

    End Sub

Open in new window

0
Comment
Question by:Delta7428
  • 3
4 Comments
 
LVL 22

Expert Comment

by:plusone3055
ID: 33433307
0
 

Author Comment

by:Delta7428
ID: 33436286
I am getting "Type Access.Application is not defined"

I have included the reference to Microsoft Access object library in COM.
Sub RunMacro()

        Dim Adb As New Access.Application

        Adb.OpenCurrentDatabase("PickTickMDBLocation")

        Adb.Run("test")

        Adb.CloseCurrentDatabase()

        Adb.Quit()



    End Sub

Open in new window

0
 

Author Comment

by:Delta7428
ID: 33445487
I added Imports Microsoft.Office.Interop.  That got rid of "Type Access.Application is not defined."

Now I am getting this again:
"Microsoft Office Access can't open the database because it is missing, or opened exclusively by another user."

Please help
0
 

Accepted Solution

by:
Delta7428 earned 0 total points
ID: 33445844
I'm not sure what the difference is, but this works for me.
RunMacro3("test")



Private Sub RunMacro3(ByVal sMacro As String)

        Dim oAccess As Object



        oAccess = CreateObject("Access.Application")

        ' Open the database

        oAccess.OpenCurrentDatabase("c:\test.mdb")

        Try



            oAccess.DoCmd.RunMAcro(sMacro)

            oAccess.Visible = False

        Catch e As Exception

            MsgBox("Macro is cancelled or does not exist")

        Finally

            oAccess = Nothing

        End Try

    End Sub

Open in new window

0

Featured Post

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

This article explains how to create and use a custom WaterMark textbox class.  The custom WaterMark textbox class allows you to set the WaterMark Background Color and WaterMark text at design time.   IMAGE OF WATERMARKS STEPS Create VB …
Well, all of us have seen the multiple EXCEL.EXE's in task manager that won't die even if you call the .close, .dispose methods. Try this method to kill any excels in memory. You can copy the kill function to create a check function and replace the …
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

746 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now