打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBA SQL高级查询

看似没用的东西,在真正需要的时候就会很珍贵。书到用时方恨少,技到用时方恨无啊!所以,在技术面前,要保持一颗敬畏的心。

  1. 'Union (AlL) 多个select查询结果合并在一起
  2. Sub 合并工作表数据()
  3. Dim data As New 类1
  4. Dim sql As String
  5. sql = "select * from [Sheet1$a:c] union all select * from [sheet2$a:c]"
  6. data.执行筛选 sql, "a2"
  7. End Sub
  8. Sub 合并工作表数据2()
  9. Dim data As New 类1
  10. Dim sql As String
  11. sql = "select * from [Sheet1$a:c] union select * from [sheet2$a:c]"
  12. data.执行筛选 sql, "a2"
  13. End Sub
  14. '查找两个表中相同的
  15. 'Select 字段 from 表1,表2 where 表1.字段=表2.字段
  16. Sub 列出相同()
  17. Dim data As New 类1
  18. Dim sql As String
  19. sql = "select [Sheet1$a:c].* from [Sheet1$a:c],[Sheet2$a:c] where [Sheet1$a:c].类别=[Sheet2$a:c].类别"
  20. data.执行筛选 sql, "a2"
  21. End Sub
  22. 'Select 字段 from 表1 Inner Join 表2 on 条件
  23. Sub 列出相同2()
  24. Dim data As New 类1
  25. Dim sql As String
  26. sql = "select [Sheet1$].*,[sheet2$].库别 from [Sheet1$] Inner Join [sheet2$] on [Sheet1$].类别=[sheet2$].类别"
  27. data.执行筛选 sql, "a2"
  28. End Sub
  29. '两表汇总
  30. Sub 汇总()
  31. Dim data As New 类1
  32. Dim sql As String
  33. Dim sq As String
  34. sql = "select * from [sheet1$a:c] union all select * from [sheet2$a:c]"
  35. sq = "select 类别,sum(数量),sum(金额) from (" & sql & ") group by 类别"
  36. data.执行筛选 sq, "a2"
  37. End Sub
  38. '
  39. Sub 合并()
  40. Dim data As New 类1
  41. Dim sql As String
  42. sql = "select [Sheet1$].*,[sheet2$].库别 from [Sheet1$] left Join [sheet2$] on [Sheet1$].类别=[sheet2$].类别"
  43. data.执行筛选 sql, "a2"
  44. End Sub
  45. 'JOIN: 如果表中有至少一个匹配,则返回行
  46. 'LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
  47. 'RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
  48. 'FULL JOIN: 只要其中一个表中存在匹配,就返回行,可惜的是在EXCEL VBA中不支持
  49. Sub 执行筛选(sq, Rg As String)
  50. Dim conn As New Connection
  51. With ActiveSheet 'Sheets("sheet1")
  52. .Range(Rg).Resize(100, 7) = ""
  53. conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName
  54. .Range(Rg).CopyFromRecordset conn.Execute(sq)
  55. End With
  56. conn.Close
  57. Set conn = Nothing
  58. End Sub

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
他山之石——VBA数据库操作
VB中用ADO对象动态创建数据库和表
VBA连接数据库
Excel中利用VB宏调用SQL示例
Excel VBA宏 链接服务器 上传和下载数据
分工作表汇总成一表问题
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服