レコード読み込み(20,000件)の時間計測

CopyFromRecordsetメソッドを使い、シートにレコードを読み込む時間を計測しました。
レコード数が、3件・2000件・20000件の3種類で計測しました。
時間は、データベースファイルを開いて、閉じて終了処理が完了するまでの時間です。
時間計測は、GetTickCount Windows APIを使用しました。

パソコンの性能にもよりますので、結果はあくまで目安にしてください。
環境は、Windows Vista と Access2007です。

結果は思いのほか速く、十分使用に耐える速度でした。



Homeに戻る > Excel データベースのTipsへ

実行画面

レコード数が3件の顧客マスターを読み込んだ結果です。
0.047秒でした。
3件のレコードの読み込み時間

レコード数が2000件の顧客マスターを読み込んだ結果です。
0.187秒でした。
2000件のレコードの読み込み時間

レコード数が20000件の顧客マスターを読み込んだ結果です。
1.732秒でした。
20000件のレコードの読み込み時間

コード

Option Explicit

'Windowsが起動してからの経過時間 API
Private Declare Function GetTickCount Lib "kernel32" () As Long

'Access Accdbファイルを開く
Private Sub ExAccdbImport()
    Dim db As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim st As Long
    Dim et As Long
    
    '開始時間を取得
    st = GetTickCount
    
    '顧客管理のACCDBファイルに接続します
    Set db = New ADODB.Connection
    db.Provider = "Microsoft.Ace.OLEDB.12.0"
    db.Open "C:\MyHP\excel2007\Tips\顧客管理.accdb"

    'レコードセットを開きます
    Set rs = New ADODB.Recordset
    rs.Open "T_顧客マスター", db, adOpenStatic
    
    'レコード数の取得
    If rs.RecordCount = 0 Then
        MsgBox "顧客のレコードが見つかりません。"
    Else
        'レコードをシートへ貼り付ける
        Range("B7").CopyFromRecordset rs
    End If
    
    rs.Close
    Set rs = Nothing
    Set db = Nothing
    
    DoEvents
    
    '終了時間を取得
    et = GetTickCount
    MsgBox (et - st) / 1000 & " 秒"
End Sub

Private Sub CommandButton1_Click()
    ExAccdbImport
End Sub


Homeに戻る > Excel データベースのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved