メインコンテンツへスキップ
ExcelからADOでAccessのデータを読み込む

ExcelからADOでAccessのデータを読み込む

·2 分
Programming VBA
かずさプログラマー
著者
かずさプログラマー
業務の作業自動化を行っています。Go、VBA、Pythonを主に使用しています。過去にはC#、VB.Net、JavaScriptも使用していました。
目次

ExcelVBAでAccessに接続してデータを読み込んでみます。

Accessファイルの内容
#

Accessのファイルは以下のパスに置かれています。
C:\access-read-test\MenuData.accdb

Accessにはテーブル「T_メニュー」があり、T_メニューにはメニューデータが記録されています。

テーブルにはID、メニュー名、値段の3つのフィールドがあります。

フィールド名 データ型
ID オートナンバー型
メニュー名 短いテキスト
値段 数値型

ExcelからAccessのデータを読む
#

参照設定
#

ExcelからADOを利用してAccessのデータを読み込むには参照設定を行う必要があります。
参照設定の方法は以下をご覧ください。

VBAで参照設定を行う
·1 分
Programming VBA

参照設定を起動してMicrosoft ActiveX Data Objects 6.1 Libraryにチェックを入れます。

コード
#

ExcelからAccessのデータを読み込んでシートに書き込むコードは以下になります。

Option Explicit

Sub readAccessData()
     
  Dim dbPath As String
  dbPath = "C:\access-read-test\MenuData.accdb"  'accdbファイルパス
  
  Dim adoCON As New ADODB.Connection
  adoCON.ConnectionString = "provider=Microsoft.ACE.OLEDB.12.0;" & _
                            "Data Source=" & dbPath & ";"
                            
  adoCON.Open
  
  Dim strSQL As String
  strSQL = "SELECT * FROM T_メニュー"
   
  Dim adoRS  As New ADODB.Recordset
  adoRS.Open strSQL, adoCON, adOpenKeyset, adLockReadOnly
   
  Dim writeSht As Worksheet
  Set writeSht = ThisWorkbook.Worksheets("Sheet1")
  writeSht.UsedRange.Clear
  
  'フィールド名の書き出し
  Dim i As Long
  For i = 0 To adoRS.Fields.Count - 1
      writeSht.Cells(1, i + 1).Value = adoRS.Fields(i).Name
  Next i
  
  'CopyFromRecordsetメソッドで基準セルを指定してデータの書き出し
  writeSht.Range("A2").CopyFromRecordset adoRS
    
  adoRS.Close
  adoCON.Close
  
  Set writeSht = Nothing
  Set adoRS = Nothing
  Set adoCON = Nothing

End Sub

readAccessDataを実行するとフィールド名とデータをSheet1に書き出します。

関連記事

【VBA】クリップボードを利用する
·2 分
Programming VBA
【VBA】穴掘り法で迷路を自動生成
··6 分
Programming VBA アルゴリズム
【VBA】行や列を削除する
·2 分
Programming VBA