EXCEL使用VBA SQL读取ACCESS数据库内容
Excel在处理大数据的时候会越来越力不从心,数据量一大,整个表格就会非常的卡,这个时候就建议将数据源,存入ACCESS中,然后通过EXCEL中 的宏VBA调用SQL代码读取处理ACCESS中的数据。
参考下面代码:
Sub 库存() Dim cnn As Object Dim SQL As String Set cnn = CreateObject("Adodb.Connection") cnn.Open "Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=F:货品报表百胜数据存档货品销售数据库.accdb" SQL = "Select 库存日期,商品年份,季节名称,中类名称,sum(在库数) from [百胜库存数据库] where 商品年份 = '2016' and 库存日期 >=#2016-06-01# group by 库存日期,商品年份,季节名称,中类名称" Worksheets("库存数据").Range("A2:cZ999999").ClearContents Worksheets("库存数据").Range("A2").CopyFromRecordset cnn.Execute(SQL) MsgBox "导入完成" cnn.Close Set cnn = Nothing End Sub
Sub 销售数据() Dim cnn As Object Dim SQL As String Set cnn = CreateObject("Adodb.Connection") cnn.Open "Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=F:货品报表百胜数据存档货品销售数据库.accdb" SQL = "Select year(日),销售月份,品牌名称,商店名称,大类名称,商品年份,季节名称,sum(数量),sum(选定金额),sum(金额) from [百胜销售数据库] where 日 >=#2015-01-01# group by year(日),销售月份,品牌名称,商店名称,大类名称,商品年份,季节名称" Worksheets("销售数据").Range("A2:cZ999999").ClearContents Worksheets("销售数据").Range("A2").CopyFromRecordset cnn.Execute(SQL) MsgBox "导入完成" cnn.Close Set cnn = Nothing End Sub
注意:Microsoft Access Driver (*.mdb, *.accdb)一定要和 控制面板-ODBC数据源-系统驱动里面的名称一模一样才行
顶(7)
踩(0)
- 最新评论