我正在使用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 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从未被设定为任何东西。
我做错了什么?两个功能都在同一个模块中。看起来将一个函数的结果变成另一个函数似乎并不难。
答案 0 :(得分:4)
如果希望函数返回某些内容,则必须将该内容指定给函数名称。
将QueryResults
功能的最后一部分更改为:
'Set rsResults = CurrentDb.OpenRecordset(stQuery)
Set QueryResults = CurrentDb.OpenRecordset(stQuery)
End Function