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 の Tools/References に移動すると、他のデータベースへの参照を追加できます。次に、次を使用できます。

Application.Run "projectname.procedurename"

(戻り値は a ですVariant)

'projectname' の既定値はデータベース名ですが、VB エディター ([ツール]、[VBAProject プロパティ]) で変更できます。

ただし、これはパブリック変数を取得しません。この変数は、Function プロシージャによって返される必要があります。

または、他のデータベースは、ライブラリ データベース(またはアドイン) である可能性があります。ここここを参照してください。

ライブラリ データベースを作成し、このデータベースのクラスを使用してクラスのフィールド (プロパティ) を公開することで、変数を返すことができると思います。ただし、Function プロシージャの作成ははるかに簡単です。

ただし、可能であれば、便利な関数を含むモジュールを作成し、これをデータベース間でコピーする方がはるかに簡単です。Access アドイン (データベース) の作成と使用には問題があると思います。

于 2013-07-18T22:22:07.737 に答える