我正在使用此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,它将作为Fields(0)出现,我想访问同一字段中的其他数据..
让我举个例子,上面SQL查询的查询结果就像这样
3940
2544
5544
5633
1257
9855
3267
3141
2731
6931
所以我想要listm中的第一个,第二个,第五个和第十个数据,它们应该存储在Pd,Pd1,Pd5和Pd11中。
任何帮助,如何做到这一点?
Soham
答案 0 :(得分:1)
使用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)。
答案 1 :(得分:0)
我对Access并不熟悉,但您是否尝试将输出存储到数组中,然后引用数组值?
干杯, Visakh