gpt4 book ai didi

vba - 如何从其他数据库打开宏 - VBA、MS Access 2003

转载 作者:行者123 更新时间:2023-12-02 00:03:31 24 4
gpt4 key购买 nike

我的任务是创建一个 Access 2003 应用程序,它将充当所有其他数据库(总共 6 个)的焦点。这 6 个数据库将各自包含一个宏,用于构建绑定(bind)到名为 DispenseExport 的表的数据。

最初,这些数据库中的每一个都有该表的自己的版本,但现在我们必须让它们都写入一个应用程序——我亲切地将其命名为 Omega

Omega 将包含所有其他将写入的 DispenseExport 表。它也将是调用其他人的宏来写入它的数据库。

那么 - 实现此目标的最佳方法是什么?

我已经有一个示例 sub 可以从另一个数据库调用宏(并且可以工作)但是这里的问题是它像任何普通用户一样打开数据库 - Omega 将位于服务器上并且需要绕过这个 - 可能使用 SHIFT-KEY Access 方法,如果最好的话?

如果这是最好的方法,我该如何在 VBA 中以编程方式执行此操作?

这是我目前所拥有的:

Option Compare Database
Option Explicit

'Sub to call a macro from another database
Public Sub CallMacro()

On Error GoTo ErrHandler:

Debug.Print "Opening Macro"
'/x tells the database to run the macro as soon as it is opened
Call Shell("msaccess.exe C:\path-to-database\database.mdb /x mcrTestCall", 0)
Debug.Print "Completed Macro"

ErrHandler:

If Err.Number <> 0 Then
'Create a message box with the error number and description
MsgBox ("Sorry but error number " & Err.Number & " occurred; " & vbCrLf & Err.Description)
End If

End Sub

更新

仍然没有找到答案,但我相信我正在关闭。我需要找出如何模拟HOLDING DOWN SHIFT - 有什么想法吗?

谢谢

最佳答案

这将避免 shell 调用(Access 2007,还有 Access 2003?):

'
' variables:
' strDbName: database filename
' strMacro: macro name
'
Sub CallMacro()
'
Dim strDbName, strMacro
Dim objApp
'
strDbName = "C:\path-to-database\database.mdb"
strMacro = "mcrTestCall"
'
Set objApp = CreateObject("Access.Application")
'
objApp.OpenCurrentDatabase strDbName
'
' Run Macro:
'
objApp.DoCmd.RunMacro strMacro
'
objApp.Quit
Set objApp = Nothing
'
End Sub

要跳过启动表单或 AutoExec,没有简单的解决方案,但我们在 http://access.mvps.org/access/api/api0068.htm 中有一个解决方法,通过使用 API 模拟 Shift 键。

关于vba - 如何从其他数据库打开宏 - VBA、MS Access 2003,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19906003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com