2013-07-18 44 views
0

在C中,標記爲extern的變量只需要在本地聲明,但可以在外部定義。這可能與VBA?因此,我喜歡這樣的事情:如何在VBA中聲明一個`extern`變量?

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

如果您轉到VBA中的工具/參考,您可以添加對其他數據庫的引用。然後你可以使用:

Application.Run "projectname.procedurename" 

(返回值是一個Variant

的「項目名稱」默認爲數據庫名稱,也可以在VB編輯器(工具,VBAProject屬性)來改變。

但是,這不會檢索公共變量。這個變量需要被一個Function過程返回。

或者,另一個數據庫可以是一個庫數據庫(或加載項)。見herehere

我相信可以通過創建一個庫數據庫並使用此數據庫中的類來公開類的字段(屬性)來返回一個變量。但是創建一個Function過程要簡單得多。

但是,如果可能的話,創建一個包含有用函數的模塊並在數據庫之間進行復制要容易得多。我相信創建和使用Access加載項(數據庫)可能會有問題。