作者:绿色风
分类:
时间:2022-08-17
浏览:121
楼主 wise |
Q:如何使用VBA连接SQL Server 2012 并提取数据?
注意:必须启动SQL Server2012服务器,同时需要注意服务器、数据库、数据表的。 因为本人的SQL Server 2012没有输入任何密码,所以相应位置为空。
A:ALT+F11→插入模块1,在里面输入以下代码:- Option Explicit
- Sub ConnectSQL()
- Dim StartTime As Variant, conn As Object, rs As Object, SQL As String, i As Long
- '定义变量
- StartTime = Timer
- Set conn = CreateObject("ADODB.Connection") '建立ADODB连接对象
- Set rs = CreateObject("ADODB.recordset") '建立收集器对象
-
- conn.ConnectionString = "Driver={sql server};" _
- & "server=WISE-THINK;" _
- & "uid=;pwd=;" _
- & "database=271模型;" _
- & "AutoTranslate=False"
- '连接的服务器名称:WISE-THINK,所连接的数据库:271模型
- conn.Open '打开连接SQL server
-
- SQL = "select Top 200 * from [201207]" '查询表“201207”中前200条所有记录。
- rs.Open SQL, conn, 1, adLockReadOnly
- If rs.RecordCount > 0 Then
- '复制所有字段名
- For i = 1 To rs.Fields.Count
- Cells(1, i) = rs.Fields(i - 1).Name
- Next i
-
- '复制全部数据
- Range("A2").CopyFromRecordset rs
- End If
- '关闭记录集及数据库连接,并释放变量
- rs.Close
- conn.Close
- Set rs = Nothing
- Set conn = Nothing
- MsgBox Timer - StartTime
- End Sub
|
2楼 wise |
注意:本人装的SQL Server 2012是Windows 身份验证的 |
3楼 我是小马儿 |
还是2005的飘过。。 |
4楼 wise |
哈哈,装了我1天半的时间 |
5楼 luckeys |
学习下 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一