在另一个数据库中调用函数时VBA访问返回值

时间:2014-12-15 15:17:19

标签: vba ms-access

我正在尝试从数据库A中的表单调用数据库B中的模块中的函数。

我意识到在VBA中,您可以通过指定返回类型并使用' Set'来获取函数的返回值。设置一个变量(与函数同名),返回值。

我试图在数据库B中调用一个函数,使用db.Execute(应返回Variant)并连接到数据库B并执行rst.Open(返回记录集)。

这两种方法似乎都没有向数据库A中的表单返回值。

有没有人有示例代码证明这一点?

1 个答案:

答案 0 :(得分:0)

如果要从不在当前数据库中的表返回记录集,则需要将ADODB.Connection变量设置为新数据库的路径。一个例子是:

Public Sub rdstALTDB()
    Dim conn As ADODB.Connection
    Dim fPath as String
    Dim rsTest As ADODB.Recordset

    Set conn = New ADODB.Connection
    fPath = C:/Test/TestDb.accdb 'location of the alternate database
    conn.Open "Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " & fPath

    Set rsTest = New ADODB.Recordset

    rsTest.Open "Test", conn

    'Do Something With the recordset

     rsTest.Close
     Set rsTest = Nothing
End Sub

希望这有帮助。