访问DAO.RecordSet中的结果



我正在使用这个SQL查询

SELECT TOP 11 StockPrices.Close FROM StockPrices WHERE StockPrices.Date >=#2009-03-23# AND StockPrices.ID=1 ORDER by StockPrices.Date;

在VBA获取和存储数据,并保持在一个记录集

SQLQuery = "SELECT TOP 11 StockPrices.Close FROM StockPrices WHERE StockPrices.Date >=#" & tempDate & "# AND StockPrices.ID=" & tempId & " ORDER by StockPrices.Date;"
Set rst2 = db.OpenRecordset(SQLQuery)
Pd = rst2.Fields(0)
Pd1 = rst2.Fields(1)
Pd5 = rst2.Fields(5)
Pd11 = rst2.Fields(10)
rst2.Close

虽然Pd被完美地查询,但我无法访问其余的数据。据我所知,这里只有一个字段,即Close,即将出现的字段(0),我想访问同一字段中的其他数据。

让我给你一个例子,上面的SQL查询的查询结果是这样的

3940
2544
5544
5633
1257
9855
3267
3141
2731
6931

所以我想要列表中的第一,第二,第五和第十个数据,它们应该存储在Pd, Pd1,Pd5和Pd11中。

有什么帮助,在如何做到这一点?

索汉姆

对于Pd1 = rst2.Fields(1),您正在访问当前行的第二列。如果要访问第二行,则需要使用rst2.MoveNext。下面的代码将保存所有的结果到results()数组。您可以使用results(4)访问第五个结果。

Dim i as Integer
Dim results(11) as Integer
i = 0
Do while Not rst2.EOF
    results(i) = rs2.fields(0)
    i = i + 1
    rst2.MoveNext
Loop

要移动多个步骤,您可以使用rst2.Move 4,即移动四个步骤。最好的方法是只获取您需要的行(1、5和11)。

我对Access不太熟悉,但是您是否尝试将输出存储到数组中,然后引用数组值?

欢呼,Visakh

最新更新