Как правильно сделать запрос на листы Excel с помощью ADO? - PullRequest
0 голосов
/ 10 января 2020

Ниже приведены данные, которые я пытаюсь запросить:

enter image description here

Я запустил код, который был найден в этой документации в этой Microsoft документация , как показано ниже:

Sub query()

On Error Resume Next

Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adCmdText = &H1

Set objConnection = CreateObject("ADODB.Connection")
Set objRecordset = CreateObject("ADODB.Recordset")

connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Users\Sun-Lap\Desktop\Sample (Payroll).xlsm; Extended Properties=""Excel 8.0; HDR=YES"";"
objConnection.Open connectionString
objRecordset.Open "Select * FROM [DailyTimeRecord$] Where Person = JOHN", _
    objConnection, adOpenStatic, adLockOptimistic, adCmdText

Do Until objRecordset.EOF
    Wscript.Echo objRecordset.Fields.Item("Date"), _
        objRecordset.Fields.Item("Person")
    objRecordset.MoveNext
Loop

End Sub

On Error Resume Next вызывает бесконечное выполнение моего приложения и зависает мое приложение.

Я попытался заменить Microsoft.Jet.OLEDB.4.0 на Microsoft.ACE.OLEDB.12.0 на основе предложение. Я также попытался заменить Extended Properties=""Excel 8.0; HDR=YES""; на Extended Properties=""Excel 12.0 Macro; HDR=YES"";

Но я все еще получаю ошибку на objRecordset.Open "Select * FROM [DailyTimeRecord$] Where Person = JOHN", _ objConnection, adOpenStatic, adLockOptimistic, adCmdText

Я получаю ошибку времени выполнения: No value for given for one or more required parameters

...