Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA Access在调用另一个数据库中的函数时返回值_Vba_Ms Access - Fatal编程技术网

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

VBA Access在调用另一个数据库中的函数时返回值,vba,ms-access,Vba,Ms Access,我试图从数据库a中的窗体调用数据库B中模块中的函数 我意识到在VBA中,您可以通过指定返回类型并使用“Set”设置变量(与函数同名)来获取函数的返回值,该变量返回值 我尝试调用数据库B中的函数,使用db.Execute(它应该返回一个变量)和连接到数据库B并执行rst.Open(返回一个记录集) 这两种方法似乎都没有向数据库a中的表单返回值 有人有示例代码来演示这一点吗?如果要从不在当前数据库中的表返回记录集,则需要将ADODB.Connection变量设置为新数据库的路径。这方面的一个例子是:

我试图从数据库a中的窗体调用数据库B中模块中的函数

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

我尝试调用数据库B中的函数,使用db.Execute(它应该返回一个变量)和连接到数据库B并执行rst.Open(返回一个记录集)

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


有人有示例代码来演示这一点吗?

如果要从不在当前数据库中的表返回记录集,则需要将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

希望这有帮助。

我非常确定db.Execute不会返回任何内容。曾经这个函数做什么?如果是查询,则记录集应该起作用。当数据库a在Access中打开时,它不能直接使用数据库B中定义的函数,除非您设置了对数据库B的引用。您好,发布您当前的代码,演示您描述的两种方法。