- ベストアンサー
AccessのデータをExcelにマクロを使転記す
Accessのテーブルまたはクリエに入力したデータをマクロを使ってExcelのシートに転記するプログラムが分かりません。 ネットで調べてもあまり出てこず、出てきたものは手当り次第打ち込んだのですがエラーばかりで全く動きません 良かったら教えていただけると嬉しいですよろしくお願いします😭
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
VBAでAccessのテーブルの内容を全てExcelに挿入する https://koryaku.club/trendblog/excel/352.html とか自分の環境に書き替えればエラーになりませんが、どのようなエラーになりますか?
その他の回答 (1)
- NuboChan
- ベストアンサー率47% (799/1673)
>エラーばかりで全く動きません どんなDATAでどんなマクロを利用してどんなエラーが出たかの記載が無いので アドバイスが難しい。 簡単な想定での例を出してほしい。 以下は、Excelシートに転記するVBAのコードの一例です。 Sub test1l() ' Accessデータベースへのパス Dim dbPath As String dbPath = "C:\path\to\your\database.accdb" ' Excelへの転記先のシート Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Sheet1") ' Accessアプリケーションの作成 Dim accessApp As Object Set accessApp = CreateObject("Access.Application") ' Accessデータベースを開く accessApp.OpenCurrentDatabase dbPath ' クエリの実行と結果の転記 Dim queryResult As Object Set queryResult = accessApp.CurrentDb.OpenRecordset("SELECT * FROM YourTable") ' ヘッダー行の転記 Dim i As Integer For i = 0 To queryResult.Fields.Count - 1 ws.Cells(1, i + 1).Value = queryResult.Fields(i).Name Next i ' 転記 ws.Range("A2").CopyFromRecordset queryResult ' 終了処理 queryResult.Close accessApp.CloseCurrentDatabase accessApp.Quit Set queryResult = Nothing Set accessApp = Nothing End Sub Sub test2() 'Accessのデータベースのパスを指定 Dim dbPath As String dbPath = "C:\Users\user\Documents\Database1.accdb" 'Accessのテーブルまたはクエリの名前を指定 Dim tableName As String tableName = "テーブル1" 'Excelのシートの名前を指定 Dim sheetName As String sheetName = "Sheet1" 'Connectionオブジェクトを作成 Dim conn As Object Set conn = CreateObject("ADODB.Connection") 'Accessのデータベースに接続 conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath 'Recordsetオブジェクトを作成 Dim rs As Object Set rs = CreateObject("ADODB.Recordset") 'Accessのテーブルまたはクエリのデータを取得 rs.Open "SELECT * FROM " & tableName, conn 'Excelのシートにデータを貼り付ける ThisWorkbook.Worksheets(sheetName).Range("A1").CopyFromRecordset rs 'ConnectionオブジェクトとRecordsetオブジェクトを閉じる rs.Close conn.Close 'オブジェクト解放する Set rs = Nothing Set conn = Nothing End Sub