Ms access 将结果从一个函数拉入另一个函数
我正在使用Access 2010。如何从一个函数移到另一个函数中获取记录集中的信息?以下代码为我提供了一个对象变量未设置错误:Ms access 将结果从一个函数拉入另一个函数,ms-access,vba,ms-access-2010,recordset,Ms Access,Vba,Ms Access 2010,Recordset,我正在使用Access 2010。如何从一个函数移到另一个函数中获取记录集中的信息?以下代码为我提供了一个对象变量未设置错误: Function Main() Dim rs as DAO.RecordSet Dim i as integer Set rs = QueryResults(i) Do While Not rs.EOF debug.print rs!result rs.MoveNext Loop End Function Function
Function Main()
Dim rs as DAO.RecordSet
Dim i as integer
Set rs = QueryResults(i)
Do While Not rs.EOF
debug.print rs!result
rs.MoveNext
Loop
End Function
Function QueryResults(i as Integer) as DAO.RecordSet
Dim stQuery as String
Dim rsResults as DAO.RecordSet
Dim i2 as Integer
i2 = i
stQuery = "Select query that uses i2 to get results"
Set rsResults = CurrentDb.OpenRecordset(stQuery)
End Function
我可以单步执行并看到QueryResults函数正在工作。我可以打印出rsResults中的每一行,并查看它是否符合我的要求。当代码点击“do while not rs.EOF”行时,问题就出现了。它说rs从未设置为任何东西
我做错了什么?这两个功能在同一个模块中。从一个函数到另一个函数中获取结果似乎不难。当您希望函数返回某个内容时,必须将该内容指定给函数名 将
QueryResults
函数的最后一部分更改为:
'Set rsResults=CurrentDb.OpenRecordset(stQuery)
Set QueryResults=CurrentDb.OpenRecordset(stQuery)
端函数
当您希望函数返回某个内容时,必须将该内容分配给函数名
将QueryResults
函数的最后一部分更改为:
'Set rsResults=CurrentDb.OpenRecordset(stQuery)
Set QueryResults=CurrentDb.OpenRecordset(stQuery)
端函数
我真不敢相信我错过了。非常感谢你。我花了很长时间在网站上寻找如何使用记录集。我甚至从未注意到函数从未被赋值。谢谢你今天让我恢复了理智。我真不敢相信我错过了。非常感谢你。我花了很长时间在网站上寻找如何使用记录集。我甚至从未注意到函数从未被赋值。谢谢你让我今天恢复了理智。