在子/函数中创建记录集

问题描述 投票:0回答:1

我想在子内部的 MS Access 中创建一个记录集,一旦创建,相同的记录集应该在子外部可用。我想到的是以下内容

Public Sub CustomerListRst(ByRef Rst As Variant)
    If Not IsNull(Rst) Then
        On Error Resume Next
        Rst.Close
        Set Rst = Nothing
        On Error GoTo 0
    End If
    Set Rst = CurrentDb.OpenRecordset("select * from Tbl_xxxx")
End Sub

记录集已创建并分配给 Rst,但是当进程从调用子程序的点返回时,rst 变为空,尽管我设置了 ByRef Rst

我做错了什么?

vba ms-access
1个回答
0
投票

您可以使用

Function
代替
Sub

Public function CustomerListRst(ByRef Rst As Variant) as Recordset
    Set CustomerListRst = CurrentDb.OpenRecordset("select * from Tbl_xxxx")
End Sub

并在另一个点中使用作为

   Dim myRst as Recordset
 ...
   Set myRst=CustomerListRst()
© www.soinside.com 2019 - 2024. All rights reserved.