Word / Access VBA total

0

Preciso de ajuda com o cálculo da coluna da tabela de palavras vba. Minha tabela do Word é criada em um modelo do Word usando o VBA do banco de dados do Access. Eu preciso calcular a soma para a última coluna da tabela. Mas minha tabela não tem um número definido de linhas. Eu tentei várias opções sem sucesso .... O seguinte cria a tabela com sucesso e faz um cálculo, mas apenas as duas últimas linhas da minha tabela (atualmente 3 linhas para o registro que estou em), mas não calcula a soma para toda a coluna como esperado. Eu não posso descobrir o que estou perdendo?

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
    
por Declan G 13.03.2018 / 16:46

1 resposta

0

Presumivelmente, você desejaria configurar o autosum fora do loop e, além disso, o índice de células para a soma total seria "recordcount + 1".

Você também pode fazer a soma no final usando uma consulta separada, como

SELECT sum(LineTotal) as querySumTotal FROM InvoiceServiceLineItems WHERE InvoiceID=" & Forms!invoicedetail!ID
    
por 13.03.2018 / 18:01