VBA-CopyFromRecordSet перезаписывает результат в той же ячейке - PullRequest
0 голосов
/ 18 июня 2020

Я пишу код vba для извлечения данных из базы данных с помощью запроса SELECT WHERE, который будет вводить столбец в электронной таблице. Результат будет вставлен в тот же лист. Мой код работает хорошо, однако результат будет записан в ту же ячейку («S2») и перезапишет предыдущий результат.

Ожидаемый результат:

NAME   |    JOB     | 
NAME 1 |  TEACHER   | 
PART 2 |  DOCTOR    | 

Реальный результат:

NAME   |    JOB     | 
NAME 1 |  DOCTOR    | 
PART 2 |            | 
Sub getdata()
    Dim sql As String
    Dim i, LR As Long
    LR = Sheet1.Cells(Rows.Count, "M").End(xlUp).Row

    For i = 2 To LR

    Set conn = CreateObject("ADODB.Connection")

    strconn = "Provider=SQLOLEDB; Server=; Database=; Integrated Security=;"
    conn.Open strconn

    sql = "SELECT JOB FROM HOUSE WHERE NAME ='" & Sheet1.Cells(i, "M").Value & "'"
    Set rsPubs = CreateObject("ADODB.Recordset")
    With rsPubs
        .ActiveConnection = conn
        .Open sql
        Sheet1.Range("S2").CopyFromRecordset rsPubs

        .Close
    End With

    conn.Close
    Set rsPubs = Nothing
    Next i
End Sub 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...