在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
答案 0 :(得分:1)
如果您转到VBA中的工具/参考,您可以添加对其他数据库的引用。然后你可以使用:
Application.Run "projectname.procedurename"
(返回值为Variant
)
'projectname'默认为数据库名称,但可以在VB编辑器中更改(工具,VBAProject属性)。
但是,这不会检索公共变量。这个变量需要由Function过程返回。
或者,另一个数据库可以是库数据库(或加载项)。请参阅here和here。
我相信可以通过创建库数据库来返回变量,并使用此数据库中的类来公开类的字段(属性)。但是创建一个Function过程要简单得多。
但是,如果可能的话,创建一个包含有用功能的模块并在数据库之间复制它会容易得多。我认为创建和使用Access Add-ins(数据库)可能会有问题。