ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

EH搜索     
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel 2016函数公式学习大典 Office知识技巧免费学 打造核心竞争力的职场宝典
300集Office 2010微视频教程 Tableau-数据可视化工具 精品推荐-800套精选PPT模板,点击获取 ExcelHome出品 - VBA代码宝免费下载
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 Excel VBA经典代码实践指南
楼主: konggs

VBA代码宝- 代码库商店

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2019-7-30 07:54 | 显示全部楼层
我安装后找不到代码库,还有这里有个密码是什么?VBAproject密码

TA的精华主题

TA的得分主题

发表于 2019-8-7 15:07 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-9-19 16:59 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-9-24 15:27 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-9-24 18:53 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-1-7 14:21 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-1-10 21:50 | 显示全部楼层
最近做数据库导表比较多,干脆自己封装了一个函数,相对来说感觉制表简单了很多,欢迎大家交流
  1. Function SQLreturn(SQLlinkStr As String, SQLstr As String, KeyArr As Variant, RecordArr As Variant)
  2.     '/******************************************/
  3.     '/参数列表:
复制代码

以下是调用本函数的一个简单示例:
  1. Sub test()
  2.    
  3.     '/******************************************/
  4.     '/参数列表: 1.SQL连接字符串 SQLlinkStr
  5.     '/2.SQL语句 SQLstr
  6.     '/3.提取字段数组 KeyArr,必须为字符串数组,长度等于需要的关键字个数
  7.     '/4.记录集数组 RecordArr,必须为二维数组
  8.     '/
  9.     '/功能说明:
  10.     '/该函数是为了操作数据库,需要提供以上几个参数,返回值就是记录集数组,请自行选择写入单元格的地址
  11.     '/所有参数都必须预定义类型
  12.     '/*****************************************/
  13.    
  14.     Dim KeyArr(1 To 2) As Variant
  15.     Dim RecordArr(1 To 30, 1 To 2) As Variant
  16.     Dim SQLlinkStr As String
  17.     Dim myStr As String
  18.    
  19.     SQLlinkStr = "Driver={Oracle in OraClient11g_home1};Dbq=数据库名称;Uid=用户名;Pwd=密码;"
  20.     myStr = "select jzxh as 数量,kssj as 时间 from ys_mz_jzls  where jzzt = '9' and to_char(kssj, 'yyyymmdd') = '20190309' and ksdm in (142)"
  21.    
  22.     '和上面需要提取的关键字对应,设置关键字数组
  23.     KeyArr(1) = "数量"
  24.     KeyArr(2) = "时间"
  25.    
  26.     '缓存数组用于存储结果
  27.     tmpArr = SQLreturn(SQLlinkStr, myStr, KeyArr, RecordArr)
  28.    
  29.     '写入时通过缓存数组的第一维长度确定填充的行数
  30.     Sheet1.Range("A1:B" & UBound(tmpArr)) = tmpArr
  31. End Sub
复制代码

这样代码就比单独写连接串啥的简洁了一些了,而且本函数通用性较好,虽然损失了一点点效率,不过更方便把自己的精力放到如何处理导出的数据上



如果对于VBA连接数据库有疑问的,可以看看我博客的专题文章:
Excel VBA连接各种数据库

TA的精华主题

TA的得分主题

发表于 2020-1-22 22:41 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-3-13 13:15 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-4-5 09:20 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关注官方微信,高效办公专列,每天发车

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

GMT+8, 2020-8-13 17:11 , Processed in 0.087715 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2020 Wooffice Inc.

   

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

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

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