Sub DB_Read()
Dim adoCON As New ADODB.Connection
Dim adoRS As New ADODB.Recordset
Dim strSQL As String
Dim odbdDB As Variant
Dim wSheetName As Variant
Dim i As Integer
'カレントディレクトリのデータベースパスを取得
odbdDB = ActiveWorkbook.Path & "\sample.accdb"
'データベースに接続する
adoCON.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source = " & odbdDB & ";" & _
"Jet OLEDB:Database Password=" & "a"
adoCON.Open
'トランザクション開始
adoCON.BeginTrans
'カーソルをクライアント側に設定
adoRS.CursorLocation = adUseClient
'DB接続用SQL
strSQL = "SELECT T_item.* FROM T_item ORDER BY T_item.ID;"
'レコードセットを開く
adoRS.Open strSQL, adoCON, adOpenDynamic
'アクティブなシート名を取得
wSheetName = ActiveSheet.Name
'スタート行をセット
i = 3
'テーブルの読み込み
Do Until adoRS.EOF 'レコードセットが終了するまで処理を繰り返す
With Worksheets(wSheetName)
.Cells(i, 1).Value = adoRS!ID
.Cells(i, 2).Value = adoRS!商品名
.Cells(i, 3).Value = adoRS!品番
.Cells(i, 4).Value = adoRS!単価
.Cells(i, 5).Value = adoRS!入数
End With
i = i + 1 '行をカウントアップする
adoRS.MoveNext '次のレコードに移動する
Loop
'トランザクション終了
adoCON.CommitTrans
'クローズ処理
adoRS.Close
Set adoRS = Nothing
adoCON.Close
Set adoCON = Nothing
End Sub