导航:首页 > 编程大全 > vba连接mssql数据库

vba连接mssql数据库

发布时间:2023-10-07 01:03:29

❶ 求教VBA连接SQL数据库的详细方法及解释。

1、基本上所有的数据库都有对应的写法(有些数据库是要装连接驱动才能连),比如"Provider=Microsoft.Jet.OLEDB.4.0(用来连接access)或者provider =MSDASQL,而且每种数据库也可能会有多种连接方法(Provider意即数据库引擎),常见的有下面这些

Provider 代码 Provider
ADSDSOObject Active Directory Services
Microsoft.Jet.OLEDB.4.0 Microsoft Jet databases
MSDAIPP.DSO.1 Microsoft Internet Publishing
MSDAORA Oracle databases
MSDAOSP Simple text files
MSDASQL Microsoft OLE DB provider for ODBC
MSDataShape Microsoft Data Shape
MSPersist Locally saved files
SQLOLEDB Microsoft SQL Server
2、参见http://www.w3school.com.cn/ado/met_conn_open.asp#connectoptionenum
3、这样就可以对book1.xlsx中的数据使用sql语法进行操作
4、当你需要返回结果的,比如说你要查询数据库符合某个条件的有几条记录,或者说取出数据库中符合条件的一批记录的时候就要用数据集,单一的conn.execute只能执行操作,不能返回数据,必须配合结果集使用才可取回数据。

❷ vba连接sqlserver数据库问题

while( @beginMonth<=@endMonth)
begin
select
Execute
End With
Set rs.ActiveConnection = conn
rs.Open cmd
If rs.RecordCount > 0 Then
conn.ConnectionString = "Driver={SQL Server};server=HKTNSSK-SQ003;database=Microsoft CSS;Trusted_Connection=yes;"
conn.Open

❸ VBA通过ADO连接SQL数据库,但是提示“无法链接到SQL数据库 错误编码 [67]”,问题在哪里呢

67表示主机地址错误,你下面语句中的【服务器名】要修改服务器的机器名专、域名或者属IP地址。

constr = "provider=sqlncli10.1;persist security info=false;initial catalog=yearsallshow;user id=sa;pwd=psw;data source=服务器名"

所有错误代码的含义见连接网页:网页链接

❹ 关于使用VBA连接SQL数据库获取数据时创建临时表的问题

也这来样。。。原因不明。不加临时源表完全没有问题。

哈哈哈哈,解决了 跟调用存储过程的时候是相同的解决方案。
在语句前面加上 SET NOCOUNT ON
因为 往临时表插入数据的时候会产生 影响行数 这种消息
SET NOCOUNT ON 能屏蔽这类信息。

❺ 谁能给我一个EXCEL VBA往SQL数据库读取和写入记录的例子

End Sub

❻ EXCEL VBA怎么读写SQLSERVER 数据库

Sub 按钮1_Click()
Dim i As Integer, j As Integer, sht As Worksheet 'i,j为整数变量;sht 为excel工作表对象变量,指向某一工作表
'Dim cn As New ADODB.Connection '定义数据链接对象 ,保存连接数据库信息;请先添加ADO引用
'Dim rs As New ADODB.Recordset '定义记录集对象,保存数据表
工具 ---〉引用 ---〉Microsoft ActiveX data objects ....
'下面两句就不需要增加引用ADO
Set cn = CreateObject("Adodb.Connection")
Set rs = CreateObject("Adodb.Recordset")
Dim strCn As String, strSQL As String '字符串变量
Dim strCond As String
strCn = "Provider=sqloledb;Server=R9HDET7;Database=dbname;Uid=username;Pwd=password" '定义数据库链接字符串

'下面的语句将读取数据表数据,并将它保存到excel工作表中:工作表为一张两维表,记录集也是一张两维表

strSQL = "select CUSTOMER_NAME from VSC_BI_CUSTOMER " '定义SQL查询命令字符串

cn.Open strCn '与数据库建立连接,如果成功,返回连接对象cn
rs.Open strSQL, cn '执行strSQL所含的SQL命令,结果保存在rs记录集对象中
i = 2

Set sht = ThisWorkbook.Worksheets("Test") '把sht指向当前工作簿的Test工作表
Do While Not rs.EOF '当数据指针未移到记录集末尾时,循环下列操作
sht.Cells(i, 1) = rs("CUSTOMER_NAME") '把当前记录的字段1的值保存到sheet1工作表的第i行第1列
rs.MoveNext '把指针移向下一条记录
i = i + 1 'i加1,准备把下一记录相关字段的值保存到工作表的下一行
Loop '循环
rs.Close '关闭记录集,至此,程序将把某数据表的字段1保存在excel工作表sheet1的第1列,行数等于数据表的记录数

cn.Close '关闭数据库链接,释放资源
End Sub

❼ Excel 怎样用VBA将数据导入到SQL数据库

subtest()
Setcnn=CreateObject("ADODB.Connection")

Setrs=CreateObject("Adodb.Recordset")strCn="Provider=sqloledb;Server=R9HDET7;Database=dbname;Uid=username;Pwd=password"
cnn.OpenstrCn
SQL=""
cnn.OpenstrCn'与数据库建立连接,如果成功,返回连接对象cn
rs.OpenSQL,cn'执行strSQL所含的SQL命令,结果保存在rs记录集对象中
cnn.Close
Setcnn=Nothing

endsub

请参考

连接数据库后,通过写SQL语句实现增删改查

❽ Excel VBA 连接SQL数据库后的操作。

呵呵,以前就帮人家解决过这个,请看下面的代码,有注释的!
Private Sub CommandButton5_Click()
Dim Conn As New ADODB.Connection '定义ADODB连接对象
Dim ConnStr As String '定义连接字符串
Dim xiao As String

xiao = ComData.Text

'对于SQL 2008,如果以IP方式访问服务器,必须要启动SQL Server Browser服务,如果是Express版本,要以“IP(计算机名)\实例名”方式访问
ConnStr = txtData.Text

Dim Records As New ADODB.Recordset '定义ADODB对象的记录集
Dim Sheet As Worksheet '定义工作表

Set Sheet = ThisWorkbook.Worksheets("Sheet2") '给变量Sheet赋值,注意:是工作簿中索引为1的那个表(通常一个新的工作簿Sheet1的索引为1)
'Sheet.Name = "Data" '把Sheet名称改为Data
Sheet.Cells.Clear '清空表中原有的数据

'连接状态是打开就不在进行Open操作

Conn.Open ConnStr
Dim SQLStr As String '要执行的SQL语句
SQLStr = "select * from Shift_Code where Club='" + xiao + "'" '可以执行更复杂的SQL语句

Records.Open SQLStr, Conn, adOpenStatic, adLockBatchOptimistic '读取SQL查询结果到Records记录集
'Records.Open
Dim i, j, TotalRows, TotalColumns As Integer
j = 0
TotalRows = Records.RecordCount
TotalColumns = Records.Fields.Count

'下面的循环把表头(即列名)写到Excel表的第一行
For i = 0 To TotalColumns - 1
Sheet2.Cells(1, i + 1) = Records.Fields(i).Name
Next

'下面的循环把查询结果写到Excel表中
Do While Not Records.EOF

For i = 0 To TotalColumns - 1
Sheet2.Cells(j + 2, i + 1) = Records.Fields(i).Value
Next

Records.MoveNext
j = j + 1

Loop
Records.Close '关闭记录集
Conn.Close '关闭连接

Set Records = Nothing '清空对象
Set Conn = Nothing '清空对象

End Sub

有什么不懂的话Hi我!

阅读全文

与vba连接mssql数据库相关的资料

热点内容
贵州遵义开发票下载什么网站 浏览:496
如何获取美团的销售数据 浏览:575
大数据建模的方法有哪些 浏览:958
分公司工商年报如何填写财务数据 浏览:286
苹果北京维修点地址 浏览:928
app原型图是什么东西 浏览:237
ug直接用cad文件建模 浏览:272
苹果电脑打开mp4文件 浏览:337
数据线一直发烫怎么回事 浏览:830
IBM代码5 浏览:279
编程时如何让输出结果之间有空格 浏览:112
怎么复制网上文件 浏览:675
苹果怎么关掉网站禁止访问 浏览:478
win10适合机械硬盘吗 浏览:586
qq头像欧美男霸气头像 浏览:368
java批量修改数据返回值 浏览:517
wp81创建文件夹 浏览:968
iphone高科技软件 浏览:654
手机端怎么看网页代码 浏览:925
什么软件能把手机变成苹果版本的 浏览:841

友情链接