我正在尝试在VBScript中使用ADODB来访问Excel文件,以查找给定工作表中输入数据的行数。到目前为止,我的代码显示了工作表上的所有内容,但我不确定如何计算行数或直接使用查询查找行数。我想使用ADODB,因为它不直接打开Excel文件,但如果这不是最好的方法,那么我怎么能这样做呢?感谢。
Set adodb = CreateObject("ADODB.Connection")
adodb.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
"test.xls" & ";Extended Properties=""Excel 8.0;IMEX=1;" & _
"HDR=NO;" & """"
Set result = adodb.Execute("Select * from [Sheet1$]")
MsgBox result.GetString
result.Close
adodb.Close
Set adodb = Nothing
Set result = Nothing
答案 0 :(得分:1)
为Connection对象添加 CursorLocation 属性。
<强>更新强>
'result.CursorLocation = 3 'adUseClient
adodb.CursorLocation = 3 'adUseClient
然后你可以获得行数。
MsgBox result.RecordCount
答案 1 :(得分:1)
我让这个工作正常:
Sub testit()
Dim ad As New adodb.Connection
Dim result As New adodb.Recordset
ad.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=test.xls ;" & _
"Extended Properties=Excel 8.0;"
result.Open "Select count(*) FROM [Sheet1$]", _
ad, adOpenStatic, adLockOptimistic, adCmdText
Debug.Print "rows:" & result.GetString
result.Close
ad.Close
End Sub
(我更改了你的变量名adodb,因为它似乎有冲突)。