Мне нужна помощь с вычислением столбца таблицы слов VBA. Моя таблица Word создается в шаблоне Word с использованием базы данных Access VBA. Мне нужно рассчитать сумму для последнего столбца таблицы. Но в моей таблице нет определенного количества строк. Я пробовал различные варианты безрезультатно .... Следующее создает таблицу успешно и выполняет вычисление, но только последние две строки моей таблицы (в настоящее время 3 строки для записи, в которой я работаю), но не рассчитывает сумму для всего столбца, как ожидалось. Я не могу понять, что мне не хватает?

Dim rs2 As DAO.Recordset
Set rs2 = CurrentDb().OpenRecordset("SELECT * FROM InvoiceServiceLineItems WHERE InvoiceID=" & Forms!invoicedetail!ID, dbOpenSnapshot)

   With rs2
    .MoveLast
        If Not .EOF Then
            .MoveLast
            .MoveFirst
        End If
    End With

Dim indx As Integer
For indx = 1 To rs2.RecordCount
    With oDoc.Tables(3)
        .Cell(indx, 1).Range.Text = Nz(rs2![LineItemCode], "")
        .Cell(indx, 2).Range.Text = Nz(rs2![Description], "")
        .Cell(indx, 3).Range.Text = Nz(rs2![InitialTerm], "")
        .Cell(indx, 4).Range.Text = Format(Nz(rs2![UnitPrice], ""), "Currency")
        .Cell(indx, 5).Range.Text = Nz(rs2![Quantity], "")
        .Cell(indx, 6).Range.Text = Format(Nz(rs2![LineTotal], ""), "Currency")
        If rs2.AbsolutePosition <> rs2.RecordCount = -1 Then .Columns(1).Cells.Add

        .Cell(indx, 6).AutoSum
    End With
    rs2.MoveNext
Next indx

1 ответ1

0

Предположительно, вы хотели бы установить автосумму вне цикла, а также, индекс ячейки для общей суммы будет "recordcount+1".

Вы также можете сделать сумму в конце, используя отдельный запрос, такой как

SELECT sum(LineTotal) as querySumTotal FROM InvoiceServiceLineItems WHERE InvoiceID=" & Forms!invoicedetail!ID

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .