EXCEL VBA与SQL server的交互(二)

本文介绍了如何使用VBA执行SQL Server的存储过程,进行数据抽取和批量存入。通过实例展示了从存储过程获取和插入数据的步骤,并探讨了VBA与SQL Server交互的原理,涉及ADO、OLE DB技术及其优势。文章还简要提及了Connection对象的关键属性和方法。
摘要由CSDN通过智能技术生成

引言

书接上回,接着讲VBA与SQL server的交互

本篇主要内容包括VBA执行存储过程,以及VBA与SQL server交互的一些技术细节

偏技术的会放在文章的最后,不感兴趣的可以直接跳过

正文

我们上回用VBA从SQL server中获取了一些数据,现在让我们来使用VBA传递数据给SQL server

代码和上回几乎一样,我们就来简单的复习一下

首先要创建连接以及数据集:

Dim conn As ADODB.Connection
Set conn = New ADODB.Connection

Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset

然后呢打开连接,执行insert语句:

conn.ConnectionString = "Provider=SQLOLEDB;Server=127.0.0.1;Database=Test;Uid=sa;Pwd=123456789"
conn.Open

Dim sql_text As String
sql_text = "insert into  [Test].[dbo].[test] values('fakecountry',111,111,222)"

rs.Open sql_text, conn

最后关闭连接释放资源:

Set rs = Nothing
conn.Close
Set conn = Nothing

就这么简单,我们就传递了一行数据到数据库test表中

但在实际的生产环境中,情况要复杂很多

首先,实际工作中我们可能没有这么大的数据库权限,会允许我们随意增改删查数据库中的表

一般可能开放视图或者某些存储过程的权限

所以呢接下来让我们看看怎么通过VBA执行存储过程,来达到数据抽取和数据批量存入的目的

先来看怎么用存储过程来从数据库获取数据

我的test库中有这样一个存储过程:

非常简单的一个存储过程,功能是通过入参(国家名)来获取整行数据

我们只需要在上次的代码基础上做略微的修改即可:

Sub test()

Dim conn As ADODB.Connection
Set conn = New
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值