|
CopyFromRecordsetメソッドでちょっと悩んでいます
やりたいことはMySQL(RDB)からバックアップでExcelにデータを貼り付けることで、
Sub S_DataPaste2Sheet(ByVal kbn As Integer,ByVal sc As Long, ByVal idx As Integer)
Dim strSQL As String
Dim dataR As New ADODB.Recordset
Dim lastrow As Long
Dim i As Long
If sc <> 0 And sc < 100000 Then
strSQL = " select vol_date,startingprice,highprice,lowprice,closingprice,volume "
Else
strSQL = " select vol_date,startingprice,highprice,lowprice,closingprice "
End If
strSQL = strSQL & " from stock_daily_tbl where stock_code=" & sc
Cells(1, 1) = sc
Select Case kbn
Case 1
lastrow = Cells(Rows.Count, "A").End(xlUp).Row
strSQL = strSQL & " and vol_date > '" & CStr(Format(Cells(lastrow, 1), "yyyy-mm-dd")) & "'"
With dataR
.CursorLocation = adUseClient
.Open strSQL, MgDB, adOpenStatic, adLockReadOnly
End With
If Not dataR.EOF Then
Range(Cells(lastrow + 1, 1)).CopyFromRecordset dataR
End If
Case 2
With dataR
.CursorLocation = adUseClient
.Open strSQL, MgDB, adOpenStatic, adLockReadOnly
End With
Range("a2").CopyFromRecordset dataR
Cells(1, 2) = structscdata(idx).sname
End Select
dataR.Close
Set dataR = Nothing
End Sub
で、Range(Cells(lastrow + 1, 1)).CopyFromRecordset dataR の部分で
"'Range'メソッドは失敗しました '_Global'オブジェクト"
で落ちています
以前(というか先週)はここの部分も成功していたんですが、昨日実行してみるとここで落ちているので
余計に何故?なんですが。
dataRの部分にOLEオブジェクトがあると失敗するってのはヘルプで見たんですが、
ではどうすればいいの?です^^;
変数にはそれぞれ
kbn 1
lastrow 2833
sc 1306
idx 2
が入っていることは確認しています
|
|