[VBA ] 抓Access資料是否可以丟進陣列.運算後꘠…
請問板上各位高手~
我現在資料庫已經建立了各檔股票樣本期間內的收盤價了
想計算他的報酬率
(今天的報酬率=[今天收盤價-昨天收盤價]/昨天收盤價)
目前我的寫法是
將收盤價從資料庫抓出來丟到儲存格中
在儲存格計算每天的報酬率
算完再用UPDATE丟進Access
缺點就是計算速度 超 級 慢 !!!
整整24個小時才算完水泥這個產業7年半的報酬率
目前想法是
從Access抓出收盤價後
丟進去陣列中
陣列運算完再UPDATE進去Access
不知道程式碼怎麼寫阿~
高手救救我吧>"<
ps.還是說是因為我用UPDATE的方式
所以速度很慢??
附上部份程式碼...
Call DbOpen
Set myRs = New ADODB.Recordset
With myRs
.Source = "SELECT close_stock,date_stock FROM stock WHERE pro_stock='1101'"
.ActiveConnection = myCon
.Open
End With
Sheet1.Range("A1").CopyFromRecordset myRs
Call DbClose
For i = 2 To Sheet1.Cells(65536, 1).End(xlUp).Row
'第1行是收盤價,已經依照日期排列。第2行是交易日期。第3行是報酬率。
Cells(i, 3) = (Cells(i, 1) - Cells(i - 1, 1)) / Cells(i - 1, 1)
Call DbOpen
Set myRs = New ADODB.Recordset
With myRs
.Source = _
"UPDATE stock SET return_stock=" & Cells(i, 3) & _
" WHERE date_stock=#" & Cells(i, 2) & "#"
.ActiveConnection = myCon
.Open
End With
Next i
Call DbClose
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.64.89.66
※ 編輯: stanraw 來自: 203.64.89.66 (11/04 17:27)
推
11/04 17:28, , 1F
11/04 17:28, 1F
→
11/04 17:28, , 2F
11/04 17:28, 2F
→
11/04 17:51, , 3F
11/04 17:51, 3F
推
11/04 20:36, , 4F
11/04 20:36, 4F
→
11/04 20:37, , 5F
11/04 20:37, 5F