スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ADOを使ってアクセスにアクセス

※ 汎用的に使いたいので、クラスでの操作にしました。
※ 参照設定でActiveX Data Access Objectを追加するのを忘れずに

'-- クラス(クラス名=clsDB)
Option Explicit

Private strcon As String

Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset

Public Sub Connect(fnAccess As String)
strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & fnAccess & ";"
cn.Open strcon
End Sub

Private Sub Class_Terminate()
On Error Resume Next
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
On Error GoTo 0
End Sub

Public Function DoSQL(sql As String) As ADODB.Recordset
rs.Open sql, cn
Set DoSQL = rs
End Function

Public Sub 項目名出力(ByVal rs As ADODB.Recordset, ByVal rng As Range)
Dim i As Long
For i = 0 To rs.Fields.Count - 1
rng.Offset(0, i).Value = rs.Fields(i).Name
Next
End Sub


'--本体 ------------
Option Explicit

Public Sub 項目データのロード()
Dim rs As New ADODB.Recordset, db As New clsDB, sql As String
Dim rng As Range

db.Connect "mdbのファイルパス"
sql = "select * from Table_***;"
Set rs = db.DoSQL(sql)

Set rng = Range("B11")
db.項目名出力 rs, rng.Offset(-1, 0)

Do Until rs.EOF
rng.Offset(0, 0) = rs!***
rng.Offset(0, 1) = rs!***
rs.MoveNext
Set rng = rng.Offset(1, 0)
Loop
rs.Close: Set rs = Nothing
End Sub

スポンサーサイト

トラックバック

コメント

コメントを残す

Secret



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。