打开Microsoft Excel文件时执行Microsoft Access Autoexec宏

时间:2018-03-26 15:51:53

标签: excel excel-vba ms-access access-vba excel-2010 vba

我在microsoft访问数据库中有一个autoexec宏,我想在每次打开excel文件时执行该宏。基本上,我需要打开访问数据库以触发autoexec然后再次关闭。

我的excel文件中有一些VBA代码已经过日期/时间戳单个记录(工作表代码)但我希望excel中有一些功能可以在打开文件时使用,以触发此访问过程。

任何人都可以共享他们用于此类功能的一些代码,或者共享我不知道的任何excel功能来完成同样的操作吗?

提前致谢!

2 个答案:

答案 0 :(得分:1)

使用VBA从Excel执行宏非常简单。您可以使用以下VBA打开Access数据库,然后再次将其关闭。

With CreateObject("Access.Application")
    .OpenCurrentDatabase "path\to\my\file.accdb"
    'AutoExec macro should fire automatically
    .Quit
End With

答案 1 :(得分:0)

要在Access打开时运行Access脚本,请确保标准模块中有FUNCTION(而不是sub)。

Option Compare Database

'------------------------------------------------------------
' AutoExec
'
'------------------------------------------------------------
Function AutoExec()
On Error GoTo AutoExec_Err

    DoCmd.RunCommand acCmdWindowHide
    MsgBox "Welcome to the client billing application!", vbOKOnly, "Welcome"
    DoCmd.OpenTable "Orders", acViewNormal, acEdit


AutoExec_Exit:
    Exit Function

AutoExec_Err:
    MsgBox Error$
    Resume AutoExec_Exit

End Function

请记住,有几种方法可以从Excel控制Access。这是一个选择。

Global oApp As Object

Sub OpenAccess()

   Dim LPath As String
   Dim LCategoryID As Long

   'Path to Access database
   LPath = "C:\Users\Excel\Desktop\Coding\Microsoft Access\Northwind.mdb"

   'Open Access and make visible
   Set oApp = CreateObject("Access.Application")
   oApp.Visible = True

   'Open Access database as defined by LPath variable
   oApp.OpenCurrentDatabase LPath

   'Open form of interest
   oApp.DoCmd.OpenForm "Form1"

End Sub