我正在使用这个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