ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 123|回复: 11

[求助] VBA中如何将SQL存储过程复制粘贴到EXCEL表里

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-11-19 13:54 | 显示全部楼层 |阅读模式
如题,目前小弟遇到的困难是:

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-11-19 13:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
1.用存储过程找到所需要的数据资料;
2.将SQL里存储过程运算的资料导入EXCEL;
3.处理资料;

现在问题卡在第二步,存储过程的代码在数据库里使用没有问题

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-11-19 13:56 | 显示全部楼层
也找了相关前辈的类似问题,但是不管怎么调整,总是在粘贴的时候弹出该对话框
VBA SQL.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-11-19 13:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请各位大佬指点迷津

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-11-19 14:01 | 显示全部楼层
Sub 测试()
Set sh1 = ThisWorkbook.Worksheets(1)

   '----------------------------------------------------------------------------------------------------------
Set cn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")
  
   
    cn.ConnectionTimeout = 0
    cn.CommandTimeout = 0
   


ID = "*******"                                                          '服务器IP
   
Database = "*******"                                                                         '数据库名称
   
PassWordChr = "******"                                                       '密码
   
    cnStr = "Provider=sqloledb;Server=" & ID & ";Database=" & Database & ";Uid=****;Pwd=" & PassWordChr & ";"
   
    cn.Open cnStr                                                                        '打开服务器对应的SQL数据库
   
   Sql = "Exec GetFPlanmx '','','','',0,1"     '存储过程
     
  sh1.Cells(2, 1).Value = Sql              '确认存储过程语句
  
            Set rs = cn.Execute(Sql)                                                         '赋值rs为存储过程数组
        
            sh1.Cells(6, 1).CopyFromRecordset rs                 '复制粘贴
            rs.Close
      
      Set rs = Nothing
      
      cn.Close
      Set cn = Nothing

End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-11-19 14:02 | 显示全部楼层
  1. Sub 测试()
  2. Set sh1 = ThisWorkbook.Worksheets(1)

  3.    '----------------------------------------------------------------------------------------------------------
  4. Set cn = CreateObject("ADODB.Connection")
  5.     Set rs = CreateObject("ADODB.Recordset")
  6.   
  7.    
  8.     cn.ConnectionTimeout = 0
  9.     cn.CommandTimeout = 0
  10.    


  11. ID = "*******"                                                          '服务器IP
  12.    
  13. Database = "*******"                                                 '数据库名称
  14.    
  15. PassWordChr = "******"                                                       '密码
  16.    
  17.     cnStr = "Provider=sqloledb;Server=" & ID & ";Database=" & Database & ";Uid=****;Pwd=" & PassWordChr & ";"
  18.    
  19.     cn.Open cnStr                                                                        '打开服务器对应的SQL数据库
  20.    
  21.    Sql = "Exec GetFPlanmx '','','','',0,1"     '存储过程
  22.      
  23.   sh1.Cells(2, 1).Value = Sql              '确认存储过程语句
  24.   
  25.             Set rs = cn.Execute(Sql)                                                         '赋值rs为存储过程数组
  26.         
  27.             sh1.Cells(6, 1).CopyFromRecordset rs                 '复制粘贴
  28.             rs.Close
  29.       
  30.       Set rs = Nothing
  31.       
  32.       cn.Close
  33.       Set cn = Nothing

  34. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-11-19 14:03 | 显示全部楼层
代码也发了,请前辈大佬指导下,也可以有偿咨询,QQ117365159

TA的精华主题

TA的得分主题

发表于 2024-11-19 14:29 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-11-19 14:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
image.png

TA的精华主题

TA的得分主题

发表于 2024-11-19 14:35 | 显示全部楼层
  1. 应该还是存储过程写得不对,VBA是支持这种用法的
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-21 19:42 , Processed in 0.045128 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表