ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 如何使SQL语句能像宏一样保存在Excel中调用?并分享我的程序模板

如何使SQL语句能像宏一样保存在Excel中调用?并分享我的程序模板

作者:绿色风 分类: 时间:2022-08-18 浏览:81
楼主
xmyjk
Q:SQL语句,可以像宏一样调用么?

A:可以,使用VBA,利用ADO+SQL。顺便分享我的模板,里面还有如何将ADO+SQL后的语句导入数组操作等运用的收集。
  1. Option Explicit
  2. Sub test()
  3. Dim cnn As Object, sql As String, BT As String, rcd As Object, i As Integer, j As Integer

  4. Application.ScreenUpdating = False
  5. [a1].CurrentRegion.Clear
  6. Set cnn = CreateObject("ADODB.Connection")
  7. 'Set rcd = CreateObject("ADODB.recordset")
  8. cnn.Open "Provider=Microsoft.Jet.Oledb.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.FullName
  9. 'Cnn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;hdr=no';data source=" & 文件全路径 '不包含字段名的情况
  10. 'Conn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;imex=1';data source=" & 文件全路径 '同一列中数据类型不一致的情况

  11. sql = "Select * From[统计$] " & _
  12.             "where  代码=600172"

  13. [a2].CopyFromRecordset cnn.Execute(sql)  '.getrows (arr)

  14. 'rcd.Open sql, cnn
  15. 'For i = 1 To rcd.Fields.Count
  16. '      Cells(1, i) = rcd.Fields(i - 1).Name
  17. '    Next

  18. '[A2].CopyFromRecordset rcd

  19. 'j = 0
  20. 'rcd.MoveFirst
  21. 'Do Until rcd.EOF
  22. '   j = j + 1
  23.   '  For i = 1 To rcd.Fields.Count
  24.    '   Cells(j + 1, i) = rcd.Fields(i - 1).Value
  25. '    Next
  26. ' rcd.MOVENEXT
  27. 'Loop

  28. 'rcd.Close: Set rcd = Nothing
  29. cnn.Close: Set cnn = Nothing
  30. Application.ScreenUpdating = True
  31. MsgBox "Ok"
  32. End Sub


SQL模板.rar
2楼
feng8103
请教如果同列中出现不同类型的数组,该如何处理。

例如:
代码
600172
600173
600174

前 2 个数据是数值型
第 3 个数据是文本类型
查询 600174 的话就会查不到。

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap