ExcelからAccessデータベースのテーブルの情報を取得する
Kappo
この部屋ではExcelからAccess上のテーブルデータを取得するやり方を掲載しています。
この部屋ではデータベースをSQL文を使って開き、目的の組合せデータをひっぱってくることが可能になり取得データの処理がとってもやり易くなりますよ。
●ファイル出力したいデータを必要な項目で並べることが出来る
●SQL文でフィールド指定でのユニーク情報の取得を可能になる
などなど...他にも出来ることが色々可能になってきますよ!!
また、一番したの方にコメント欄があるからよかったら質問・感想などメッセージ入れてください
Accessでテーブルを作成する
サンプル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 公式サイト。アマゾンで本, 日用品, ファッション, 食品, ベビー用品, カー用品ほか一億種の商品をいつでもお安く。通常配送無料(一部を除く)
コメント