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

Posted

技术标签:

【中文标题】打开 Microsoft Excel 文件时执行 Microsoft Access Autoexec 宏【英文标题】:Executing Microsoft Access Autoexec macro when opening Microsoft Excel file 【发布时间】:2018-03-26 15:51:53 【问题描述】:

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

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

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

提前致谢!

【问题讨论】:

在 Excel 中执行 autoexec 正在执行的任何操作不是更简单吗?开放 Access 似乎有点过头了 【参考方案1】:

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

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

【讨论】:

非常感谢!我是否应该能够直接复制到我的 excel VBA 工作表中并执行,或者是否有其他需要的代码? 这应该足够了。只需填写文件位置即可。当然,代码需要添加到一个sub中,并且需要被触发。您可以将它添加到 ThisWorkbook 模块中,添加到 Workbook_Open 子中,以便在工作簿打开时自动执行它。 所以我创建了以下代码块: Private Sub Workbook_Open() With CreateObject("Access.Application") .OpenCurrentDatabase "path\to\my\file.accdb" 'AutoExec 宏应该自动触发。退出以结束子结束 我收到以下错误:“编译错误:无效的外部程序” 您能否在您的问题中提供整个模块的代码(以便您可以格式化)?这似乎是指子或函数之外的代码。您提供的代码没有任何内容,因此我无法解释该错误。【参考方案2】:

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

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

【讨论】:

以上是关于打开 Microsoft Excel 文件时执行 Microsoft Access Autoexec 宏的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft Excel csv文件强制以UTF-8打开[重复]

Excel打开文件时,会同时打开一个空白Excel窗口,怎么去掉?

Microsoft Excel 破坏 .csv 文件中的变音符号?

是否可以通过 PHP 代码将 excel csv 文件直接打开到 microsoft excel 或其他 excel 支持的应用程序中

打开EXCEL文件里会多打开一个空白表格

Excel插入图片时总是显示:导入此文件时出错,怎么回事【图片】