VBA 402号室:Accessデータベースの情報を取得

スポンサーリンク
VBAの部屋

ExcelからAccessデータベースのテーブルの情報を取得する

Kappo
Kappo

この部屋ではExcelからAccess上のテーブルデータを取得するやり方を掲載しています。
この部屋ではデータベースをSQL文を使って開き、目的の組合せデータをひっぱってくることが可能になり取得データの処理がとってもやり易くなりますよ。
 ●ファイル出力したいデータを必要な項目で並べることが出来る
 ●SQL文でフィールド指定でのユニーク情報の取得を可能になる
などなど...他にも出来ることが色々可能になってきますよ!!
また、一番したの方にコメント欄があるからよかったら質問・感想などメッセージ入れてください

サンプルDB
・ファイル名;Sample.accdb(保存先=C:¥Sample)
・テーブル名:tblData
・テーブルデータ:下図の通り
 全てのフィールド=文字列
 ※文字列の方が取得後の処理/加工がしやすい(超~主観です笑)

テーブルデータの定義

テーブル内のデータ

データベース(Access)の準備が出来たので取得のプログラムを記述します

「ADO」が使えるように参照設定で追加する
※追加の方法は 「参照ライブラリを追加する(参照設定)-別ブログ」を参照してください

コマンドボタンがクリックされた時に実行されるプログラム
「CommandButton3」
※コマンドボタンは 「VBA:Accessデータベースに接続」で作成したもの

tblDataのフィールド=DATA1から情報を取得する

▼プログラム▼

Dim cnn As ADODB.Connection
Dim rec As ADODB.Recordset
Dim mySQL As String
Dim mdbPath As String

mdbPath = "C:\Sample¥Sample.accdb" '接続するAccessファイルのフルパス

Set cnn = New ADODB.Connection

'DB接続文字列
cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.16.0;" _
                            & "Data Source=" & mdbPath & ";"

cnn.Open '接続の確立

'------------------------------
’ ※接続後の処理プログラム

’データベースの指定テーブルに接続する

Set rec = New ADODB.Recordset

mySQL = "SELECT * FROM tblData"    'SQL文

Call rec.Open(mySQL, cnn, adOpenStatic, adLockReadOnly)   '読取り専用で開きます
                      '↑ CursorTypeとOptionの組合せはおまじない的にいつも同じ 笑

Debug.Print("Record Count = " & rec.RecordCount)   'レコード数

Dim Dummy As String     '一時保管変数

Dummy = ""

If rec.RecordCount <> 0 Then

    'データベースのフィールドから情報を取得する
    Dummy = rec("DATA1").Value    'フィルード名を指定する
        '下記の記述も同じ
        'rec!DATA1.Value       'これもフィールド名を指定する 
        'rec.Fileds(0).Value   'これはフィールド位置(0から始まる)を指定する

    Debug.Print("DATA1 = " & Dummy)

    '------------------------------

    Call MsgBox("DBのデータ = " & Dummy,  vbInformation+vbOkOnly, "メッセージ")

    '------------------------------

End If

rec.close

'------------------------------
'後片付け
Set rec = Nothing

'------------------------------
cnn.Close()

'------------------------------
'後片付け
Set cnn = Nothing

tblData:1レコード目のDATA1の値が取得できた

Amazon | 本, ファッション, 家電から食品まで | アマゾン
Amazon.co.jp 公式サイト。アマゾンで本, 日用品, ファッション, 食品, ベビー用品, カー用品ほか一億種の商品をいつでもお安く。通常配送無料(一部を除く)

  

VBAの部屋
スポンサーリンク
シェアする
Kappoをフォローする

コメント

タイトルとURLをコピーしました