excel vba使用SQL查询最新日期各厂、物料单价

![表头 表头() EXCEL2007 工作表名称:MX

Sub CreateRecordset1()
Application.Calculation = xlManual
    Dim cnn As Object
    Dim rst As Object
    Dim strPath As String
    Dim strSQL As String
    Dim lngCount As Long
    Dim i As Integer
    Set cnn = CreateObject("ADODB.Connection")
    Set rst = CreateObject("ADODB.RecordSet")
    '----后期引用Recordset对象
    strPath = ThisWorkbook.FullName
    '----指定ADO连接的文件路径(本工作簿)
    cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" _
        & "Extended Properties=Excel 12.0;" _
        & "Data Source=" & strPath
    strSQL = "select distinct a.*,b.工艺设计理论单产 from (select distinct 工厂,物料,max(提交日期) as  最新日期 from [MX$] group by 工厂,物料) as a left  join [MX$] as b on a.工厂=b.工厂 and a.物料=b.物料 and (a.最新日期=b.提交日期 or a.最新日期 is null)" '定义SQL记录命令"
    '----SQL语句
    rst.Open strSQL, cnn, 1, 3
    '----使用Open方法建立记录集
    Cells.ClearContents
    For i = 0 To rst.Fields.Count - 1
    '----遍历读取记录集中的字段
        Cells(1, i + 1) = rst.Fields(i).Name
    Next i
    Range("A2").CopyFromRecordset rst
    '----读取记录集中的记录
    lngCount = rst.RecordCount
    '----记录的数目
    MsgBox "共查询到:" & lngCount & "条记录。"
    rst.Close
    cnn.Close
    Set rst = Nothing
    Set cnn = Nothing
  Application.Calculation = xlAutomatic '打开自动计算

End Sub
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值