如何在VBA中声明`extern`变量?

时间:2013-07-18 19:24:57

标签: vba extern

在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 

1 个答案:

答案 0 :(得分:1)

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

Application.Run "projectname.procedurename"

(返回值为Variant

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

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

或者,另一个数据库可以是库数据库(或加载项)。请参阅herehere

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

但是,如果可能的话,创建一个包含有用功能的模块并在数据库之间复制它会容易得多。我认为创建和使用Access Add-ins(数据库)可能会有问题。