VBA调用sqlserver带参数的存储过程
来源:互联网 发布:嗟乎!是安知古谓廉者哉 编辑:程序博客网 时间:2024/05/20 20:05
今天,在工作的时候,一朋友提出了一个需求,在excel中根据物流单位的报价计算物流单位的总费用
序号箱数重量kg到站佳怡物流兔兔快运13140.5临沂256260.7莱西
31578莱阳
4290潍坊
5945商河
6867济阳
71118枣庄
~~~~~好多数据
为了描述方便,假设佳怡物流每公斤0.6元,兔兔快运每公斤0.7,莱阳兔兔快运因为某种原因不发货,佳怡能发货,保费兔兔快运每箱0.8元,佳怡每箱1元;我们计算报价公式
重量*X元/公斤+箱数*保费+其他费用
我首先将所有物流单位的报价根据某种格式都导到了sqlserver某个表中,然后写了一个存储过程,在excel中用alt+F11打开vba编程写了一个过程,返回总费用
Sub doSumFee()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim connStr As String, sqlStr As String
On Error Resume Next
connStr = "Provider=SQLOLEDB;Server=sql数据库名称或者IP,1433;Database=数据库名称;Uid=用户名;Pwd=密码;"
'MsgBox connStr
conn.Open connStr
Dim rowxh As Integer, colhx As Integer, ws As Worksheet
'sheet页的名称
Set ws = Sheets("sheet1")
'行数
For rowxh = 2 To 7
'列数
For colhx = 5 To 6
sqlStr = "exec proSelectWldwBj '" & ws.Cells(rowxh, 4).Value & "'," & ws.Cells(rowxh, 3).Value & "," & ws.Cells(rowxh, 2).Value & ", '" & ws.Cells(1, colhx).Value & "';"
'MsgBox sqlStr
rs.Open sqlStr, conn, adOpenStatic, adLockBatchOptimistic
'MsgBox rs.Fields(0).Value
ws.Cells(rowxh, colhx).Value = rs.Fields(0).Value
rs.Close
Set rs = Nothing
Next
Next
conn.Close
Set conn = Nothing
End Sub
然后再在excel中调用即可
- VBA调用sqlserver带参数的存储过程
- SQLServer--带输出参数的存储过程
- VBA调用带游标返回值的ORACLE存储过程
- VC++调用带参数的存储过程
- 调用带输出参数的存储过程
- 带输出参数的存储过程调用
- C#调用带参数的存储过程
- VC++调用带参数的存储过程
- 调用带输出参数的存储过程
- 存储过程如何调用带参数的存储过程
- 调用带参数存储过程
- SQLSERVER存储过程如何写带参数的游标
- SQLSERVER存储过程如何写带参数的游标
- c#执行sqlserver带返回参数的存储过程
- SQLServer --自定义带输入参数的存储过程
- SqlServer存储过程(带参数)
- php调用sqlserver存储过程实例,带输入输出参数,经测试可用
- ASP调用带参数存储过程的几种方式
- iOS 打包ipa最简单粗暴的方式
- oauth:authorization-code
- Oracle-34-if语句、case语句、loop循环、while循环、for循环
- 生活教会了我们什么?
- Hadoop新手学习指导
- VBA调用sqlserver带参数的存储过程
- WordPress 如何设置固定链接
- Playing R with GPU accelerated in CentOS 7
- 操作系统—处理器
- Unable to execute dex: Multiple dex files define
- USB hid通信 间隔报告的困扰
- Cannot send session cache limiter - headers already sent错误解决方法
- cocos2dx CCArray
- windows下AndroidStudio配置svn