Я заполняю набор записей из простого запроса с помощью ADO, и при ручной печати все это хорошо и понятно, но когда я пытаюсь перенести набор записей в таблицу листа, только 3 столбца заполняются из 4.
Этоединственный метод, который я использую и всегда работал. Я изменил Range, указал вне таблицы, использовал одну ячейку и больший диапазон, чем то, что вернет мой запрос. Все, что я получил, было 3 колонки.
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(1)
Dim conn As Object
Set conn = openCon 'other function I assure to works
Dim rst As Object
Dim query As String
Set rst = CreateObject("ADODB.RECORDSET")
'I don't think the problem is here but i really don't know what it could be
If ws.Range("tabArts").Rows.Count > 1 Then
ws.Range("tabArts").Rows.Delete
Else
ws.Range("tabArts").ClearContents
End If
query = ""
query = query & "SELECT art.code , "
query = query & " art.descr, "
query = query & " Sum (tb1.qty) 'Qty', "
query = query & " tb1.serials "
'serials is defined as NON NULL, so it's an empty string if not written
query = query & "FROM tb1 "
query = query & " LEFT OUTER JOIN articles art "
query = query & " ON tb1.idart = art.id "
query = query & "GROUP BY code, Descr, serials"
'This query return a full 4 columns table with 15 rows
rst.activeconnection = conn
rst.Open query
ws.Range("tabArts").CopyFromRecordset rst
'tabArts is a table with same query's headers
rst.Close
conn.Close