Olá Henry,
uma forma de fazer o que precisa é por meio de relatório.
Imagine, por exemplo, que você tenha uma tabela ou consulta com os campos ID (autonumérico), DataRef (ex.: 02/05/2011, 09/05/2011), Descricao (ex.: RAÇÂO CRESC. II) e ValorLcto (ex.: -5880, -12280).
Com base nesta tabela ou consulta, você cria um relatório com os campos Descricao, DataRef, ValorLcto e Valor2 (este campo Valor2 é não-acoplado, ou seja, é apenas uma caixa de texto em branco na Seção Detalhe).
Se o seu controle de valores for por descrição, você pode criar um cabeçalho de grupo para Descricao.
No módulo VBA do relatório, você cria uma variável na seção Geral:
Option Compare Database
Option Explicit
Private mcurValor2 As Currency
No evento Ao Imprimir do cabeçalho de grupo ou do cabeçalho do relatório, você zera a variável:
Private Sub CabeçalhoDoGrupo0_Print(Cancel As Integer, PrintCount As Integer)
mcurValor2 = 0
End Sub
No evento Ao Imprimir da seção Detalhe, você coloca a lógica para pegar o valor da linha anterior e preencher a caixa Valor2:
Private Sub Detalhe_Print(Cancel As Integer, PrintCount As Integer)
On Error GoTo ErrHandler
'Preenche a caixa não-acoplada
Me.Valor2 = mcurValor2
'Armazena o valor para a próxima linha
mcurValor2 = Me.ValorLcto
ExitHere:
Exit Sub
ErrHandler:
MsgBox Err.Description & vbCrLf & Err.Number & vbCrLf & Err.Source, vbCritical, "Report_Relatório1-Detalhe_Print"
Resume ExitHere
Resume
End Sub
Abra o relatório no modo Visualização de Impressão para disparar o evento Ao Imprimir.
Luiz Cláudio Cosenza Vieira da Rocha - http://msmvps.com/blogs/officedev - IT Lab www.itlab.com.br - Access FAQ: www.accessfaq.com.br