1 '点击“工具”->“引用”添加以下引用: 2 'Microsoft ActiveX Data Objects 2.8 Libary 3 'Microsoft ActiveX Data Objects Records 2.8 Libary 4 'Microsoft ADO Ext.2.8 For Dll and Security 5 'Microsoft Forms 2.0 Object Libary 6 Public cat As New ADOX.Catalog 7 Public Conn As New ADODB.Connection '定义对象连接数据库信息
8 Public rs As New ADODB.Recordset '定义set
9 Public Strsql As String '定义sql语句字符串 10 11 '打开数据库连接 12 Public Sub OpenSql() 13 If Conn.State = 1 Then Conn.Close 14 If Conn.State = 0 Then 15 Conn.Open "provider=sqloledb;server=数据库所在IP地址(可以是公网IP,前提是做好映射);database=数据库实例名称;uid=数据库登录用户(默认是sa);pwd=密码;" 16 End If 17 End Sub 18 19 '关闭数据库连接 20 Public Sub CloseConn() 21 If rs.State = 1 Then rs.Close 22 Conn.Close 23 End Sub 24 25 'sql_query语句 建议直接在数据库中写好过程 调用的时候方便调用 26 Public Sub SelectView(sku As String) '表示有参过程 27 Strsql = "p_SelectView '" & sku & "'" '过程前面可以选加 execute/exec 不加也可以 28 OpenSql '打开连接 29 rs.Open Strsql, Conn '使用连接 30 Worksheets("sys").Cells.Clear '删除原sys表中数据 31 Dim i As Integer '写入字段标题 下标从0开始 32 For i = 0 To rs.Fields.Count - 1 33 Worksheets("sys").Cells(1, i + 1).Value = rs.Fields(i).Name 34 Next i 35 Worksheets("sys").Cells(2, 1).CopyFromRecordset rs '粘贴查询结果:特别注意 如果过程里面不仅有查询语句还有很多其它运算和操作,记得应用 set nocount on 和 set nocount off,不然会报错 36 CloseConn '关闭连接 37 End Sub