我想开发一个函数,执行所有查询到数据库并将结果存储在全局记录集中以便在其他函数中使用它,但是当函数或子结束时,全局记录集变空(超出范围)。我怎样才能解决这个问题?使用全局临时记录集模块内的交换信息vba
模块内容:
Global rsResultado As ADODB.Recordset
Sub main()
sql = "query works ok, I get data"
realizarConsulta (sql)
Debug.Print "Check result: " & rsResultado.Fields(0) 'Here I lost data setted in function
End Sub
Public Function realizarConsulta(sql As String) As Recordset
conectarBD
Debug.Print "SQL Ejecutada -->" & sql
Set rsResultado = New ADODB.Recordset
rsResultado.Open sql, Conn
'Set realizarConsulta = rs
'Set rsResultado = rs
Do While Not rsResultado.EOF
Debug.Print "Registro: " & rsResultado.Fields(0)
rsResultado.MoveNext
'Here I can see the content of the global recordset
Loop
'rs.Close
Conn.Close
End Function
有没有什么办法来解决这个问题?我究竟做错了什么?
我有一个模块的全局记录集,我想设置(把它的信息)该记录集函数或子内,然后在该函数(或子)以外使用它。但是,当取出函数(或子)时,该记录集脱离了上下文。如果它是一个全局变量,它的值被设置在一个函数内,它怎么会这样?它应该保持de函数(或子函数)之外的数据。 – Carol