MySQL запрос ADODB VBA либо дает E_FAIL, либо усекает данные - PullRequest
0 голосов
/ 16 июня 2019

Я использую ADODB для запроса базы данных SQL.Многие из моих запросов работают нормально, но один конкретный запрос продолжает вызывать проблемы.

Когда я запускаю запрос, он выдает ошибку E_FAIL.В нескольких статьях указывается, что в этом случае для .Cursorlocation должно быть задано значение adUseServer.Когда я делаю это, ошибка действительно исчезает.Однако с этим параметром данные усекаются.Только некоторые поля в таблице.Когда я гуглю об этой проблеме, он предлагает установить .Cursorlocation в adUseClient.Вроде расстраивает.Кто-нибудь может помочь с этим?

Set rs = CreateObject("ADODB.Recordset")
Set cn = CreateObject("ADODB.Connection")
With rs
        .CursorLocation = adUseClient
        .LockType = adLockBatchOptimistic
        .CursorType = adOpenStatic
        .ActiveConnection = cn
 End With
rs.Open sqlstring, cn, adOpenStatic

For i = 0 To rs.Fields.Count - 1
ActiveSheet.Cells(2, i + 1).Value = rs.Fields(i).Name
Next i
ActiveSheet.Range("A3").CopyFromRecordset rs
...