2012-02-27 47 views
1

我试图从Excel中调用Access数据库中的子例程。然后这个子程序调用一些其他的子程序,全部包含在数据库中。我看到很多其他的帖子,其中有些人不赞同,但出于某些原因,Excel需要成为这方面的前端。我想:从Excel调用Access Sub

Sub TestRun() 
     Dim acObj As Access.Application 
     Set acObj = CreateObject("Access.Application") 
     acObj.Application.Visible = True 
     acObj.OpenCurrentDatabase "C:\testMDB\TEST.mdb", False, "password" 
     acObj.Application.Run ("TestRunAccess") 
End Sub 

的数据库与密码的工作组的一部分 - 运行它这样仍然会提示输入密码。我对Access不是很熟悉 - 我怎么去做这件事?我需要包括哪些参考?

回答

2

这将是:

''Reference: Microsoft Access x.x Object Library 
Dim acObj As New Access.Application 
''Set acObj = CreateObject("Access.Application") 
acObj.Application.Visible = True 
acObj.OpenCurrentDatabase "C:\testMDB\TEST.mdb",,"ADatabasePassword" 
acObj.Application.Run "TestRunAccess" 

您可能更愿意使用后期绑定,如果你希望避免与引用的问题,在这种情况下:

Dim acObj As Object 
Set acObj = CreateObject("Access.Application") 
acObj.Application.Visible = True 
acObj.OpenCurrentDatabase "C:\testMDB\TEST.mdb",,"ADatabasePassword" 
acObj.Application.Run "TestRunAccess" 
+0

我仍然运行到麻烦需要但是,要手动提供密码。你知道如何解决这个问题吗? – tttt555 2012-02-27 21:53:37

+0

这仅仅是一个数据库密码或者你在使用用户级别的安全性吗?对于数据库密码,请参阅编辑,它与您在示例中显示的相同。 – Fionnuala 2012-02-27 21:58:09

+0

我认为这是用户级别的安全性,因为我相信它是从工作组定义的。 – tttt555 2012-02-27 22:00:34