Public Sub ReadAccessDataFile(ByVal FilePathName As String, _
ByVal PassWord As String)
'
' @brief AccessDBを読み込む
' @param FilePathName DBファイルのフルパスとファイル名
' PassWord DBファイルのパスワード
' @note ActiveX Data Objects(ADODB)でDBにアクセスしSELECT文で
' 必要なデータをシートに読み込む
' @date Nov 07, 2016
'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim cnnDB As ADODB.Connection ’ コネクションオブジェクト
Dim adoRs As Object ' ADOレコードセットオブジェクト
Dim strSQL As String
Set cnnDB = New ADODB.Connection
' データベースを開き、アクセス権の読み取り/書き込みを行い、
' データベース パスワードを指定する
With cnnDB
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Properties("Jet OLEDB:Database Password") = PassWord
.Mode = adModeReadWrite
.Open FilePathName
End With
'
' データベースにアクセスする
'
' ADOレコードセットオブジェクトを作成
Set adoRs = CreateObject("ADODB.Recordset")
' 持ってくるカラム名とそのテーブル名
strSQL = "SELECT ほにゃらら, ほげほげ FROM なんちゃらテーブル"
' SQLを実行して対象をRecordSetへ
adoRs.Open strSQL, cnnDB
' 任意のExcelシートのペーストする
Worksheets(1).Range("A1").CopyFromRecordset adoRs
' レコードセットのクローズ
adoRs.Close
' コネクションのクローズ
cnnDB.Close
' レコードセットオブジェクトの破棄
Set adoRs = Nothing
' コネクションオブジェクトの破棄
Set cnnDB = Nothing
End Sub
こんな感じ。
--
☼ のち ☁
No comments:
Post a Comment