Excel のワークシートSheet1のデータをSQLで集計して(SUM Group by )して、隣のSheet2にINSERTする方法を紹介します。
そのためには DAO(※Data Access Object の略)を利用します。ここで紹介す
る方法を実現するには、「Microsoft Office 14.0 Access database engine Object Library」が参照設定されていることが前提になります。
そのためには DAO(※Data Access Object の略)を利用します。ここでは、DAO を使ったデータベース検索方法を紹介します。
① 「Microsoft Office 16.0 Access database engine Object Library」を参照設定します。
② 参照設定したことで、DAOを利用できます。Excel ブックを用意して、標準モジュールに DAO を利用した次のコードを記載します。
Option Explicit
Public Sub Sample_InsertSumExcelData_DAO_01()
' DAO データベース設定用変数
Dim db As DAO.Database
' "C:\Temp\仲間.xlsx"をデータベースとして開く。
Set db = DBEngine.Workspaces(0).OpenDatabase( _
"C:\Temp\仲間.xlsx" _
, False _
, False _
, "Excel 12.0;HDR=YES" _
)
' データをSELECTしてそのままINSERTする。
Call db.Execute( _
" INSERT INTO [Sheet2$] SELECT 所属ID, SUM(給料) AS 給料集計 FROM [Sheet1$] GROUP BY 所属ID" _
)
' データベースを閉じる。
db.Close
Set db = Nothing
' 処理の終了を通達する。
MsgBox "データを挿入しました。", vbOKOnly
End Sub
③ Sample_InsertSelectExcelData_DAO_01を実行します。Excel ワークシートをデータベースと見なしてInsert処理が実行されます。
コメントを残す