今天,在工作的时候,一朋友提出了一个需求,在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中调用即可
相关推荐
这个压缩包中的"ExcelVBA+ADO+SQLServer实现跨电脑数据传输"文件很可能是包含具体代码示例的Excel工作簿,它展示了如何在VBA环境中编写和调用这些步骤。通过学习和实践这个示例,你可以掌握如何在不同的计算机之间...
此外,VBA还可以用于执行存储过程,只需将SQL语句改为调用存储过程的格式,如: ```vba strSQL = "EXEC ProcedureName @Parameter1, @Parameter2" ``` 并使用参数对象设置参数值。 通过这些基本的VBA和ADO操作,你...
正如提供的部分代码所示,以下是一个完整的VBA脚本示例,用于连接到SQL Server数据库并列出所有存储过程的详细信息: ```vba Dim cn As rdoConnection Dim ps As rdoPreparedStatement Dim rs As rdoResultset Dim ...
另一种是可以返回多个值,存储这些值的变量名称需要在调用参数中先行指定。 这个例子要处理多种参数,输入参数,输出参数,返回记录集以及一个直接返回值(够全了吧?) 存储过程如下: 代码如下: use pubs GO — ...
// 调用存储图片数据的存取过程 string strName = Path.GetFileName(filePath); string connString = "Data Source=.;Initial Catalog=StuDB;Persist Security Info=True"; SqlConnection conn = new ...
模块化宏是基于VBA(Visual Basic for Applications)的,而SQL存储过程则使用SQL Server的Transact-SQL语法。尽管Access本身不直接支持Transact-SQL,但可以通过Jet或ACE数据库引擎来创建和执行SQL存储过程。 创建...
3. SQL Server:SQL Server是微软提供的企业级数据库管理系统,支持大规模数据存储和复杂查询。它支持多种数据导入导出方式,如使用SSIS(SQL Server Integration Services)进行ETL(Extract, Transform, Load)...
- **5.7 通过 ODBC 调用 SQL Server 数据库的存储过程** - 如何通过 ODBC 执行存储过程。 - **5.8 ODBC 错误处理** - 错误代码和消息的处理机制。 #### 第6章 使用 ADO 访问 SQL Server 数据库 - **6.1 概述** ...
`Recordset.Open`方法接受SQL查询作为参数,返回的结果集可以在VBA中遍历和修改。 7. 错误处理和事务管理: 在VBA中操作数据库时,务必考虑错误处理和事务管理。使用`On Error`语句来捕获和处理可能出现的错误,...
7. 执行SQL:将串口接收到的数据作为参数绑定到Command对象上,然后调用Execute方法执行SQL插入操作。 8. 关闭串口和数据库连接:在完成数据处理后,记得关闭串口和断开数据库连接,确保资源的有效释放。 在压缩包...
这些函数通过调用SQL Server的API或者执行T-SQL语句,与数据库进行交互,实现数据的增删改查。 此外,SQLTest报告.doc可能包含了系统测试的结果和性能分析。在系统开发完成后,通常会进行一系列的功能测试和压力...
触发器在特定的数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行,而存储过程则封装了一系列的SQL语句,可以多次调用,提高效率。 4. 角色和权限管理:在企业环境中,数据的安全性至关重要。SQL Server 2005...
**5.7 通过ODBC调用SQL Server数据库的存储过程** ODBC还支持调用SQL Server中的存储过程。 **5.8 ODBC错误处理** 处理ODBC调用过程中可能发生的错误情况。 #### 六、使用ADO访问SQL Server数据库 **6.1 概述**...
然而,与SQL Server等大型数据库系统相比,Access缺少原生的存储过程支持,这在处理大量数据时,特别是实现分页查询时,可能会带来一些挑战。本资料“access下仿Sql存储过程的分页方案”提供了一种在Access中模拟...
- Command对象:用于对SQL Server执行命令,比如调用存储过程。需要设置CommandText和CommandType属性,然后使用Execute方法执行命令。Command对象可以通过Parameters集合管理存储过程的参数。 - Recordset对象:...
在本示例中,"存储过程 Procedure" 专注于使用ADO(ActiveX Data Objects)技术和Server技术来创建一个类似QQ登录验证的机制。这个技术方案对于那些已经具备一定ADO编程经验的开发者来说,具有很高的学习和参考价值...
2. **Command对象**:执行SQL语句或存储过程。 3. **Recordset对象**:用于存储从数据源获取的数据记录集。 4. **Field对象**:表示Recordset中的字段。 5. **Error对象**:提供有关错误的信息。 #### 二、SQL ...
16. 创建存储过程:在SQL中,CREATE PROCEDURE命令用于创建存储过程,这是一种预编译的SQL代码集合,可多次调用。 以上知识点涵盖了SQL的基本操作、数据模型理论、SQL Server数据库管理以及数据库设计和编程中的...
此外,文章还提到了使用VBA for Word实现与SQL Server的数据调用,包括程序的实现过程、如何定义和使用ODBC数据资源名称、如何在Office Word中设置引用以及实际的程序设计方法。通过实际的程序设计,可以实现营销员...
该模块不仅能够记录操作员的操作过程,还能够在集控室通过语音报警形式播报启停操作,同时将操作记录存储于SQL Server数据库中。这些操作记录对于事故原因的分析非常有价值,尤其是在事故发生后能够帮助相关人员确定...