将结果从一个函数拉到另一个函数中

时间:2014-02-22 04:47:41

标签: ms-access 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 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从未被设定为任何东西。

我做错了什么?两个功能都在同一个模块中。看起来将一个函数的结果变成另一个函数似乎并不难。

1 个答案:

答案 0 :(得分:4)

如果希望函数返回某些内容,则必须将该内容指定给函数名称。

QueryResults功能的最后一部分更改为:

'Set rsResults = CurrentDb.OpenRecordset(stQuery)
Set QueryResults = CurrentDb.OpenRecordset(stQuery)
End Function