excel vba函数返回记录集

时间:2013-10-25 21:00:33

标签: excel-vba adodb vba excel

我有一个返回RecordSet的VBA函数,并且在子例程中使用了这个RecordSet。该函数本身存在于一个模块中。虽然函数本身成功返回RecordSet,但我有两个问题:

  1. 如果我尝试关闭函数中的连接,则会导致应用程序失败
  2. 如果我在使用它后尝试关闭子程序中的RecordSet,则会导致应用程序失败
  3. 那么,如何在返回记录集并在使用后关闭记录集后关闭函数中的连接?

    我的函数建立连接,打开它并执行查询。

2 个答案:

答案 0 :(得分:0)

使用记录集后,必须将其关闭。

当记录集处于活动状态时,它会消耗资源。使用记录集后,您应该释放它正在使用的内存,以便它们可以用于计算机的其他对象。这是通过向Recordset对象赋予Nothing来完成的。这是一个例子:

'Clean Up
rsTemp.Close 'closing recordset
Set rsTemp= Nothing ' free the memory

您也可以在最后关闭连接。

If con.State = adStateOpen Then
 con.Close
End If

If Not con Is Nothing Then Set con = Nothing

答案 1 :(得分:0)

不要将其作为一种功能。模块化为子程序