用于返回记录集的excel vba函数
我有一个VBA函数,它返回一个用于返回记录集的excel vba函数,excel,adodb,vba,Excel,Adodb,Vba,我有一个VBA函数,它返回一个记录集,这个记录集在一个子例程中使用。函数本身存在于一个模块中。虽然函数本身成功返回记录集,但我有两个问题: 如果我试图关闭函数中的连接,则会导致应用程序失败 如果我在使用子例程后尝试关闭记录集,则会导致应用程序失败 那么,如何在返回记录集后关闭函数中的连接,并在使用记录集后关闭它 My函数建立连接,打开其,并执行查询。使用记录集后,它必须关闭 当记录集处于活动状态时,它会消耗资源。使用记录集后,您应该释放它使用的内存,以便计算机的其他对象可以使用它们。这是通过不向
记录集
,这个记录集
在一个子例程中使用。函数本身存在于一个模块中。虽然函数本身成功返回记录集
,但我有两个问题:
记录集
,则会导致应用程序失败My函数建立连接,打开其,并执行查询。使用记录集后,它必须关闭 当记录集处于活动状态时,它会消耗资源。使用记录集后,您应该释放它使用的内存,以便计算机的其他对象可以使用它们。这是通过不向记录集对象分配任何内容来完成的。以下是一个例子:
'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
不要把它当作一种功能。将其模块化为子例程请显示您的代码。记录集依赖于实时连接才能工作。在使用完所有记录集之前,不应尝试关闭连接。在返回记录集的函数中,如果我将记录集和连接设置为nothing或close,则代码将失败,并且不会向调用子例程返回任何内容。我已尝试关闭调用子例程中使用的记录集,但正如我所说的,它失败了。您将在子例程中关闭记录集以避免其失败,并关闭函数中的连接以避免其失败?@Andy5您可以创建一个包含该记录集的函数。让函数返回记录集…在调用函数中使用记录集,然后关闭记录集。