MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Saldo linha à linha no Relatorio com Recordset

    Compartilhe

    IuriEmanuel
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 23/08/2018

    [Resolvido]Saldo linha à linha no Relatorio com Recordset

    Mensagem  IuriEmanuel em 1/12/2018, 11:19

    Bom dia, Pessoal.
    Estou à dias tentando criar uma forma de obter o saldo linha-a-linha de uma tabela de movimentações do cliente de maneira eficiente, a única forma de fazer isso sem se utilizar de expressões de domínio cheias de critérios do DSum, foi abrindo o recordset com um que dá o saldo acumulado do select a cada loop, o problema é escrever isso no relatório, pois como vocês podem ver, existe à linha "Me.STemp = Saldo" que em tese em cada loop escreveria uma respectiva linha no relatório, só que isso não acontece e o campo STemp recebe só o ultimo valor do loop, logo o saldo final. Existe alguma maneira de fazer o relatório escrever isso a cada loop criando outras linhas?

    Código:

    Private Sub Report_Load()
     DoCmd.SetWarnings False
     Dim rst As DAO.Recordset
     Dim Saldo As Double
     Set rst = CurrentDb.OpenRecordset("SELECT * FROM PessoaMovimento WHERE PessID = " & Me.PessID & "")
     Do While Not rst.EOF
      Saldo = Saldo + rst!Valor
      Me.STemp = Saldo
      rst.MoveNext
     Loop
     Screen.ActiveForm.Refresh
    End Sub
    avatar
    caiosouza
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 362
    Registrado : 05/12/2016

    Re: [Resolvido]Saldo linha à linha no Relatorio com Recordset

    Mensagem  caiosouza em 1/12/2018, 11:41

    Tente assim:


    Código:
    Private Sub Report_Load()
     DoCmd.SetWarnings False
     Dim rst As DAO.Recordset
     Dim Saldo As Double
     Set rst = CurrentDb.OpenRecordset("SELECT * FROM PessoaMovimento WHERE PessID = " & Me.PessID & "")
     Do While Not rst.EOF
      Saldo = Saldo + rst!Valor
      Me.STemp = Me.STemp & chr(13) & Saldo
      rst.MoveNext
     Loop
     Screen.ActiveForm.Refresh
    End Sub


    .................................................................................
    A persistência leva ao sucesso!

    IuriEmanuel
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 23/08/2018

    Re: [Resolvido]Saldo linha à linha no Relatorio com Recordset

    Mensagem  IuriEmanuel em 1/12/2018, 12:33

    Bom dia! Obrigado pela resposta, mas o código ainda continua exibindo somente o resultado total em todas a linhas, segue abaixo o anexo caso queira vistoriar.

    Abrçs,
    Att,

    Download do Arquivo
    avatar
    caiosouza
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 362
    Registrado : 05/12/2016

    Re: [Resolvido]Saldo linha à linha no Relatorio com Recordset

    Mensagem  caiosouza em 1/12/2018, 12:34

    Bom dia,

    Favor enviar no e-mail: [Você precisa estar registrado e conectado para ver este link.]


    .................................................................................
    A persistência leva ao sucesso!

    IuriEmanuel
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 23/08/2018

    Re: [Resolvido]Saldo linha à linha no Relatorio com Recordset

    Mensagem  IuriEmanuel em 1/12/2018, 12:43

    Enviado!
    avatar
    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3469
    Registrado : 04/04/2010

    Re: [Resolvido]Saldo linha à linha no Relatorio com Recordset

    Mensagem  Avelino Sampaio em 1/12/2018, 12:58

    Olá!

    seria uma ótima oportunidade de aprender como funciona o mecanismo de construção de um relatório e a sequências de seus eventos (copie e cole o link abaixo no seu navegador).

    usandoaccess.com.br/tutoriais/video-programacao-de-relatorios.asp?id=1#inicio


    Bom estudo!

    IuriEmanuel
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 37
    Registrado : 23/08/2018

    Re: [Resolvido]Saldo linha à linha no Relatorio com Recordset

    Mensagem  IuriEmanuel em 1/12/2018, 18:34

    Gente!! Eu percebia tantas pessoas com problemas para chegar a este resultado, que nunca que passaria pela minha cabeça de fazer isso, devido a simplicidade. Eu consegui obter o saldo linha-a-linha no relatório da seguinte forma:

    No relatório tem um campo "txtValor", e eu só precisei criar outro campo "txtSaldo" ao lado e colocar a fonte de controle para "=txtValor", e nas propriedades, utilizei a "Soma Parcial" como total, e ele exibe justamente o que eu queria. Resolvi sem o código VBA, mas desde já eu agradeço meus amigos!!

      Data/hora atual: 16/12/2018, 11:23