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

求教VBA连接SQL数据库的详细方法及解释。,第1张

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只能执行 *** 作,不能返回数据,必须配合结果集使用才可取回数据。

如下:自己改一下:

Sub aa()

   Dim cn As New ADODB.Connection

   Dim rs As New Recordset

   Str1 = "select 区域,内=SUM(case when 新替换区内外='替换区内' then 1 else 0 end ),外=SUM(case when 新替换区内外='替换区外' then 1 else 0 end ) from 宏站 group by 区域"

   

strcn = "Provider=sqloledbDatabase=testUid=saPwd=30687724datasource=127.0.0.1,1433"

   cn.Open strcn

   rs.Open Str1, cn

Dim i

For i = 1 Tors.Fields.Count

Cells(1, i) = rs.Fields(i- 1).Name’FIELDS是从0开始的,所以这里要-1

 

 

 Range("a2").CopyFromRecordset rs

Next i

Set cn = CreateObject("ADODB.Connection")

Set rs = CreateObject("ADODB.Recordset")

Dim strCn As String, strSQL As String

strCn = "PROVIDER=SQLOLEDBDATA SOURCE=127.0.0.1UID=sapassword=123457DATABASE=abc"

cn.Open (strCn)

If cn.State <>1 Then '如果数据库连接未打开

rs.Close

cn.Close

MsgBox ("数据库连接错误")

else

MsgBox ("数据库连接成功")

End If

'运行SQL语句

'strSQL = "具体的SQL语句",下举例,提取abc表中的aaa,写入sheet1的A列

strSQL = "select aaa,bbb,ccc from abc where bbb>100"

rs.Open strSQL, cn, 1, 1

If Not (rs.BOF And rs.EOF) Then '有记录存在

For i = 1 To rs.RecordCount

Sheets(1).Range("A" &i) = rs.Fields(0).Value

'Fields(0)对应aaa,Fields(1)对应bbb,类推

rs.MoveNext

Next

Else

MsgBox ("数据提取失败")

End If

rs.Close

cn.Close


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9882394.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-03
下一篇2023-05-03

发表评论

登录后才能评论

评论列表(0条)

    保存