`

VBA调用sqlserver带参数的存储过程

 
阅读更多

今天,在工作的时候,一朋友提出了一个需求,在excel中根据物流单位的报价计算物流单位的总费用

 

序号 箱数 重量kg 到站 佳怡物流 兔兔快运
1 3 140.5 临沂    
2 56 260.7 莱西    
3 15 78 莱阳    
4 2 90 潍坊    
5 9 45 商河    
6 8 67 济阳    
7 11 18 枣庄    

~~~~~好多数据

为了描述方便,假设佳怡物流每公斤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跨电脑读写数据传输.zip

    这个压缩包中的"ExcelVBA+ADO+SQLServer实现跨电脑数据传输"文件很可能是包含具体代码示例的Excel工作簿,它展示了如何在VBA环境中编写和调用这些步骤。通过学习和实践这个示例,你可以掌握如何在不同的计算机之间...

    VBA连接sqlserver数据库的常用函数.rar

    此外,VBA还可以用于执行存储过程,只需将SQL语句改为调用存储过程的格式,如: ```vba strSQL = "EXEC ProcedureName @Parameter1, @Parameter2" ``` 并使用参数对象设置参数值。 通过这些基本的VBA和ADO操作,你...

    精彩编程与编程技巧-列出 SQL Server 数据库中所有的存储过程...

    正如提供的部分代码所示,以下是一个完整的VBA脚本示例,用于连接到SQL Server数据库并列出所有存储过程的详细信息: ```vba Dim cn As rdoConnection Dim ps As rdoPreparedStatement Dim rs As rdoResultset Dim ...

    asp sqlserver 执行存储过程返回记录集报对象关闭时不允许操作

    另一种是可以返回多个值,存储这些值的变量名称需要在调用参数中先行指定。 这个例子要处理多种参数,输入参数,输出参数,返回记录集以及一个直接返回值(够全了吧?) 存储过程如下: 代码如下: use pubs GO — ...

    图片文件在SQL Server数据库的存取

    // 调用存储图片数据的存取过程 string strName = Path.GetFileName(filePath); string connString = "Data Source=.;Initial Catalog=StuDB;Persist Security Info=True"; SqlConnection conn = new ...

    access数据库创建存储过程

    模块化宏是基于VBA(Visual Basic for Applications)的,而SQL存储过程则使用SQL Server的Transact-SQL语法。尽管Access本身不直接支持Transact-SQL,但可以通过Jet或ACE数据库引擎来创建和执行SQL存储过程。 创建...

    Access、SQLServer、Excel三者之间实现导入与导出

    3. SQL Server:SQL Server是微软提供的企业级数据库管理系统,支持大规模数据存储和复杂查询。它支持多种数据导入导出方式,如使用SSIS(SQL Server Integration Services)进行ETL(Extract, Transform, Load)...

    SQLServer2000开发者指南(pdf)

    - **5.7 通过 ODBC 调用 SQL Server 数据库的存储过程** - 如何通过 ODBC 执行存储过程。 - **5.8 ODBC 错误处理** - 错误代码和消息的处理机制。 #### 第6章 使用 ADO 访问 SQL Server 数据库 - **6.1 概述** ...

    Excel VBA操作数据库资料.rar

    `Recordset.Open`方法接受SQL查询作为参数,返回的结果集可以在VBA中遍历和修改。 7. 错误处理和事务管理: 在VBA中操作数据库时,务必考虑错误处理和事务管理。使用`On Error`语句来捕获和处理可能出现的错误,...

    串口COM信息的数据库存储(SQL SERVER)

    7. 执行SQL:将串口接收到的数据作为参数绑定到Command对象上,然后调用Execute方法执行SQL插入操作。 8. 关闭串口和数据库连接:在完成数据处理后,记得关闭串口和断开数据库连接,确保资源的有效释放。 在压缩包...

    基于SQL Server 6.5的公司进销存管理的实例(298KB)...

    这些函数通过调用SQL Server的API或者执行T-SQL语句,与数据库进行交互,实现数据的增删改查。 此外,SQLTest报告.doc可能包含了系统测试的结果和性能分析。在系统开发完成后,通常会进行一系列的功能测试和压力...

    SQL Server 2005数据库系统开发与实例之固定资产管理系统+源代码

    触发器在特定的数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行,而存储过程则封装了一系列的SQL语句,可以多次调用,提高效率。 4. 角色和权限管理:在企业环境中,数据的安全性至关重要。SQL Server 2005...

    sql入门经典 pdf文档

    **5.7 通过ODBC调用SQL Server数据库的存储过程** ODBC还支持调用SQL Server中的存储过程。 **5.8 ODBC错误处理** 处理ODBC调用过程中可能发生的错误情况。 #### 六、使用ADO访问SQL Server数据库 **6.1 概述**...

    access下仿Sql存储过程的分页方案 .rar

    然而,与SQL Server等大型数据库系统相比,Access缺少原生的存储过程支持,这在处理大量数据时,特别是实现分页查询时,可能会带来一些挑战。本资料“access下仿Sql存储过程的分页方案”提供了一种在Access中模拟...

    在VB中通过ADO对象实例化来远程访问SQL Server.pdf

    - Command对象:用于对SQL Server执行命令,比如调用存储过程。需要设置CommandText和CommandType属性,然后使用Execute方法执行命令。Command对象可以通过Parameters集合管理存储过程的参数。 - Recordset对象:...

    存储过程 Procedure

    在本示例中,"存储过程 Procedure" 专注于使用ADO(ActiveX Data Objects)技术和Server技术来创建一个类似QQ登录验证的机制。这个技术方案对于那些已经具备一定ADO编程经验的开发者来说,具有很高的学习和参考价值...

    基于ADO技术动态创建SQL+Server数据库

    2. **Command对象**:执行SQL语句或存储过程。 3. **Recordset对象**:用于存储从数据源获取的数据记录集。 4. **Field对象**:表示Recordset中的字段。 5. **Error对象**:提供有关错误的信息。 #### 二、SQL ...

    北语16秋数据库应用SQLserver作业2.pdf

    16. 创建存储过程:在SQL中,CREATE PROCEDURE命令用于创建存储过程,这是一种预编译的SQL代码集合,可多次调用。 以上知识点涵盖了SQL的基本操作、数据模型理论、SQL Server数据库管理以及数据库设计和编程中的...

    VBA基于ADO访问SQL的策略.pdf

    此外,文章还提到了使用VBA for Word实现与SQL Server的数据调用,包括程序的实现过程、如何定义和使用ODBC数据资源名称、如何在Office Word中设置引用以及实际的程序设计方法。通过实际的程序设计,可以实现营销员...

    基于IFix与SQL Server的操作记录查询功能实现.pdf

    该模块不仅能够记录操作员的操作过程,还能够在集控室通过语音报警形式播报启停操作,同时将操作记录存储于SQL Server数据库中。这些操作记录对于事故原因的分析非常有价值,尤其是在事故发生后能够帮助相关人员确定...

Global site tag (gtag.js) - Google Analytics