Я пишу код 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