快捷搜索:   nginx

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)

您可能还会对下面的文章感兴趣:

最新评论