EXCEL宏问题(ODBC),帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/25 20:03:58
问题描述:我以前写宏都是用SQL SERVER连接的,但是现在有个问题就是能不能不用SQL连接而是用ODBC连接,因为不能保证那里每台机器都有SQL SERVER客户端,当然,服务器是有SQL SERVER的
比如我原来的数据库连接字符串是
.ConnectionString = "Driver={SQL Server};Server=*****;Database=" ****";Uid=***;password=***;"
改成ODBC不用SQL SERVER的话怎么写
还有,如果不用SQL SERVER的话还有RECORDSET吗?给个链接也行,我自己去看教程
PS:我原先已经写过一个了,并测试在有SQL客户端的时候通过的,代码如下:
Sub 按钮1_单击()
Dim cnn As New ADODB.Connection, rs As New ADODB.Recordset
Dim i As Long, mydata As String, myTable As String, SQL As String
With cnn
.ConnectionString = "Driver={SQL Server};Server=*****;Database=***;Uid=**;password=***;"
.Open
End With
SQL = "***********"
rs.Open SQL, cnn, adOpenKeyset, adLockOptimistic
Rows("3:3").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
For i = 1 To rs.Fields.Count
Cells(2, i).Value = rs.Fields(i - 1).Name

在EXCEL中, 是不需要conncetion, 应该这样写
Dim xlconn As String
Dim xlrs As New ADODB.Recordset
Dim xlFile As String
Dim xlSheet as string

xlFile = "c:\a.xls"
xlSheet = "sheet1"

xlconn = "DRIVER=Microsoft Excel Driver (*.xls);" & "DBQ=" & xlFile
xlrs.Open "select * from [" & xlSheet & "$]", xlconn

与SQL的取法是一样的,因为是RECORDSET, 第几行也就是第几条记录而已,
N = xlrs.RecordCount (或-1)

你在电脑上面新建一个记事本,然后另存为,后缀名改为.udl,然后你打开这个空白的UDL文件,会提示你选择你想要的数据库连接,并且生成你想要的