[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『SQL ServerからEXCELに一気に取得』(setcom)
「ADODB」クラスを使用してSQL Server からデータ読込
Do Until rs.EOFのところでループしていますが、
現在テストなので良いですが、カラム数を100とか
レコード数が数千になった時に、レスポンスが気になります。
ループせずに一気にセルに書き出す方法はあるでしょうか?
全て、SQL Server のカラム順、レコード順にEXCEL
セルに張り付けばいいだけなのですが。
Public Sub GetTestData()
'変数 Dim rs As ADODB.Recordset Dim strSQL As String '画面描画の停止 Application.ScreenUpdating = False 'オブジェクト生成 Set rs = New ADODB.Recordset 'テストデータ取得SQL strSQL = "SELECT " & _ " C1, " & _ " C2 " & _ "FROM " & _ " TB1 " 'レコードセットオープン rs.Open strSQL, db, adOpenKeyset, adLockReadOnly 'ループカウンタ i = 1 '取得データループ Do Until rs.EOF 'データをセルへ設定 Cells(i, 1) = rs!C1 Cells(i, 2) = rs!C2 'ループカウンタインクリメント i = i + 1 '次のレコードへ rs.MoveNext Loop 'レコードセットクローズ rs.Close Set rs = Nothing End Sub
< 使用 Excel:Excel2013、使用 OS:Windows7 >
Rangeオブジェクトには、 CopyFromRecorsSet というメソッドがあります。
これを調べてみてください。
(ichinose) 2015/04/23(木) 12:53
(setcom) 2015/04/23(木) 14:17
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.