Использование ADODB в VBScript, чтобы найти количество строк в листе Excel? - PullRequest
0 голосов
/ 17 августа 2011

Я пытаюсь использовать ADODB в VBScript для доступа к файлу 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

Ответы [ 2 ]

1 голос
/ 17 августа 2011

У меня все работает нормально:

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, так как оно кажется конфликтующим).

1 голос
/ 17 августа 2011

Добавьте свойство CursorLocation для своего объекта Connection.

Обновлен:

'result.CursorLocation = 3 'adUseClient
adodb.CursorLocation = 3 'adUseClient

Тогда вы можете получить количество строк.

MsgBox result.RecordCount
...