|
本帖最后由 平平淡淡的天使 于 2013-9-18 10:05 编辑
之前为设置TCP/Ip和防火墙的时候,本地连接SQL Server连接正常,但是设置后。。不能正常连接了。。
代码如下:
- Sub test() '定义过程名称
- Application.ScreenUpdating = False
- Dim i As Integer, j As Integer, sht As Worksheet 'i,j为整数变量;sht 为excel工作表对象变量,指向某一工作表
- Dim a As String, b As String
- Dim cn As Object
- Set cn = CreateObject("ADODB.Connection")
- Dim rs As Object
- Set rs = CreateObject("ADODB.Recordset") '定义记录集对象,保存数据表
- 'Dim cm As New ADODB.Connection
- Dim strCn As String, strSQL As String '字符串变量
- a = Cells(2, 1).Value
- b = Cells(2, 2).Value
- 'strCn = "Provider=sqloledb;Server=IDEA-PC\SQLEXPRESS;Database=alesdata;Uid=sa;Pwd=198977" '定义数据库链接字符串
- 'strCn = "Provider=SQLOLEDB; User ID=sa;Password =198977;Data Source=IDEA-PC\SQLEXPRESS;Initial Catalog=alesdata"
- strCn = "Driver={SQL Server};Server=192.168.10.38,1433;uid =sa;pwd =198977;database=alesdata" '必须使用driver={sql server}中间不能有空格,server不能直接使用local,必须指定本机机名 win-j8vpcts806b,注意相关引号
- strSQL = "select * from 全年数据 WHERE 下单日期 between '" & a & "' and '" & b & "'" '定义SQL查询命令字符串
- cn.Open strCn '与数据库建立连接,如果成功,返回连接对象cn
- Set rs = cn.Execute(strSQL)
- Cells(4, 1).CopyFromRecordset rs
- For i = 1 To rs.Fields.Count
- Cells(3, i) = rs.Fields(i - 1).Name
- Next
- rs.Close '关闭记录集,至此,程序将把某数据表的字段1和字段2保存在excel工作表sheet1的第1、2列,行数等于数据表的记录数
- cn.Close
- Set cn = Nothing
- Application.ScreenUpdating = True
- End Sub
复制代码 各位大师帮忙下。。
|
|