0

在 C 中,标记的变量extern只需要在本地声明,但可以在外部定义。VBA可以做到这一点吗?因此,我追求的是这样的:

DataSource_14.accdb:
    ' References CommonFunctions.accdb
    Public SOURCE_ID As Long = 14

    Public Sub Baz()
        Foo
        Bar
    End Sub 

CommonFunctions.accdb:
    Extern SOURCE_ID As Long    ' <- what's the proper way to declare this?
    Public Sub Foo()
        Debug.Print "Doing Foo stuff with source " & SOURCE_ID
    End Sub
    Public Sub Bar()
        Debug.Print "Doing Bar stuff with source " & SOURCE_ID
    End Sub 
4

1 回答 1

1

如果您转到 VBA 中的工具/引用,您可以添加对其他数据库的引用。然后你可以使用:

Application.Run "projectname.procedurename"

(返回值为 a Variant

“项目名称”默认为数据库名称,但可以在 VB 编辑器(工具、VBAProject 属性)中更改。

但是,这不会检索公共变量。此变量需要由 Function 过程返回。

或者,其他数据库可以是库数据库(或加载项)。见这里这里

我相信可以通过创建库数据库并使用该数据库中的类来公开该类的字段(属性)来返回变量。但是创建一个 Function 过程要简单得多。

但是,如果可能的话,创建一个包含有用功能的模块并在数据库之间复制它会容易得多。我相信创建和使用 Access 加载项(数据库)可能会出现问题。

于 2013-07-18T22:22:07.737 回答