导航:首页 > 编程大全 > 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数据库相关的资料

热点内容
1703版win10 浏览:357
windows文件上传 浏览:111
精通jsp编程技术 浏览:139
电脑软件删不了提示找不到文件 浏览:223
宁波哪里有学It编程的地方 浏览:808
win10最新预览版续航 浏览:705
web服务器更新代码 浏览:603
u盘装msdnwin10 浏览:135
电子表格打印有内容但是打开文件没内容 浏览:788
大数据分析如何做好 浏览:819
拉美数据中心在哪里 浏览:797
office2007诊断工具 浏览:83
红眼去除工具 浏览:405
手机语言编程用什么键盘 浏览:599
java环境已配置好了找不到文件 浏览:565
w10系统修改文件格式 浏览:179
桌面怎么把两个文件夹压缩成一个 浏览:293
u盘为什么存文件这么慢 浏览:807
手机的下拉菜单代码 浏览:384
宁波ug编程培训中心哪里好 浏览:565

友情链接