代码之家  ›  专栏  ›  技术社区  ›  StillLearningHowtoCode

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

  •  0
  • StillLearningHowtoCode  · 技术社区  · 6 年前

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

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

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

    提前感谢!

    2 回复  |  直到 6 年前
        1
  •  1
  •   Erik A    6 年前

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

    With CreateObject("Access.Application")
        .OpenCurrentDatabase "path\to\my\file.accdb"
        'AutoExec macro should fire automatically
        .Quit
    End With
    
        2
  •  0
  •   ASH    6 年前

    要在Access打开时运行Access脚本,请确保在标准模块中有一个函数(而不是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的访问。这里有一个选择。

    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