|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
最近做数据库导表比较多,干脆自己封装了一个函数,相对来说感觉制表简单了很多,欢迎大家交流- Function SQLreturn(SQLlinkStr As String, SQLstr As String, KeyArr As Variant, RecordArr As Variant)
- '/******************************************/
- '/参数列表:
复制代码
以下是调用本函数的一个简单示例:
- Sub test()
-
- '/******************************************/
- '/参数列表: 1.SQL连接字符串 SQLlinkStr
- '/2.SQL语句 SQLstr
- '/3.提取字段数组 KeyArr,必须为字符串数组,长度等于需要的关键字个数
- '/4.记录集数组 RecordArr,必须为二维数组
- '/
- '/功能说明:
- '/该函数是为了操作数据库,需要提供以上几个参数,返回值就是记录集数组,请自行选择写入单元格的地址
- '/所有参数都必须预定义类型
- '/*****************************************/
-
- Dim KeyArr(1 To 2) As Variant
- Dim RecordArr(1 To 30, 1 To 2) As Variant
- Dim SQLlinkStr As String
- Dim myStr As String
-
- SQLlinkStr = "Driver={Oracle in OraClient11g_home1};Dbq=数据库名称;Uid=用户名;Pwd=密码;"
- myStr = "select jzxh as 数量,kssj as 时间 from ys_mz_jzls where jzzt = '9' and to_char(kssj, 'yyyymmdd') = '20190309' and ksdm in (142)"
-
- '和上面需要提取的关键字对应,设置关键字数组
- KeyArr(1) = "数量"
- KeyArr(2) = "时间"
-
- '缓存数组用于存储结果
- tmpArr = SQLreturn(SQLlinkStr, myStr, KeyArr, RecordArr)
-
- '写入时通过缓存数组的第一维长度确定填充的行数
- Sheet1.Range("A1:B" & UBound(tmpArr)) = tmpArr
- End Sub
复制代码
这样代码就比单独写连接串啥的简洁了一些了,而且本函数通用性较好,虽然损失了一点点效率,不过更方便把自己的精力放到如何处理导出的数据上
如果对于VBA连接数据库有疑问的,可以看看我博客的专题文章:
Excel VBA连接各种数据库
|
|