簡體   English   中英

如何從另一個 MS Access 運行在 MS Access 數據庫中定義的宏?

[英]How to run a macro defined in an MS Access database from another MS Access?

我有一個可公開訪問的 ms 訪問文件 - Frontend.accdb,其中所有表都鏈接到另一個名為 Data.accdb 的受保護的 ms 訪問數據庫。 在 data.accdb 中定義了一個導入作業,它將數據導入到 data.accdb 中,當打開時,該作業將更新到 Frontend.accdb。

我想在我的frontend.accdb添加這個導入作業,以便通過單擊frontend.accdb的按鈕,data.accdb 被刷新,並且 Frontend.accdb 中的表被填充新數據。

如果后端表在前端鏈接,那么你應該將宏移到前端數據庫中對鏈接的表進行操作。

您可以使用此處討論的 shell 命令

如何使用 VBA 在不同(即外部)Access 數據庫中以編程方式調用宏?

但這可能會使確保宏正確運行和其他錯誤捕獲方面的問題復雜化。

您可以從前端打開后端數據庫並使用“應用程序”對象運行宏。

Dim appAccess As New Access.Application

'Opening backend database
appAccess.Visible = False 'This can only be here once everyone has trusted the 
appAccess.OpenCurrentDatabase "PathtoBackend" & "\data.accdb"

'Time acknowledge the Trust popups if they haven't trusted the db
 Do
    Sleep 1000 'Assumes you have the Win API Sleep command available. 
    DoEvents
Loop While Not appAccess.CurrentProject.IsTrusted

appAccess.Run "Import Data Macro Name"
appAccess.CloseCurrentDatabase
appAccess.Quit

或者

將整個表更新宏移動到前端,並將數據從源推送到前端,使用TransferDatabase推送到后端的鏈接表。

'Bunch of code that builds the DAO or ADO objects from the source data    
Docmd.TransferDatabase acLink, , "PathToBackend" & "\data.accdb", acTable, "FrontEndTableNameContainingSourceData", "BackendTableNameDestination", , )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM