データベースへのすべてのクエリを実行し、その結果をグローバルレコードセットに格納して関数内で使用する関数を開発したいが、関数またはサブプログラムが終了すると、空(スコープ外)になります。これをどうすれば解決できますか?グローバルなテンポラリレコードセットをモジュール内の交換情報に使用
モジュール内容:
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
は、この問題を解決する方法はありますか?私は何を間違えているのですか? Function
内部のお近くにかかわりので
モジュール内にグローバルレコードセットがあり、そのレコードセットを関数またはサブ内に設定して(その情報を入れて)、その関数またはサブ関数の外で使用したいと考えています。しかし、関数(またはサブ)を取得すると、そのレコードセットはコンテキスト外です。関数内で値が設定されているグローバル変数であれば、関数(またはサブ)の外部にデータを保持する必要があります。 – Carol