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

    Consulta para dar o saldo de 2 colunas

    Compartilhe

    PabloSousa1977
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 15/08/2017

    Consulta para dar o saldo de 2 colunas

    Mensagem  PabloSousa1977 em 3/9/2017, 14:17

    Bom Dia Pessoal,

    Estou tendo uma dificuldade em montar uma consulta sql para dar o saldo dos valores de 2 colunas.
    Vou colocar o exemplo abaixo com a imagem para melhor entenderem, segue em anexo a imagem do formulario.
    Preciso fazer o seguinte, sempre pegar o saldo da coluna saldo e somar com a entrada ou subtrair com a saida e colocar o saldo na coluna, estou fazendo de um jeito que esta funcionando mas nao do jeito que preciso porque quando vou editar por exemplo um lançamento errado não consigo puxar o saldo, tenho que fazer estorno e outro lançamento para dar certo.
    Já procurei pela net toda, mas desse jeito que preciso fazer não encontrei nada, alguém tem um exemplo ou um link que possa me auxiliar em fazer essa consulta dar certo.
    Desde já agradeço, muito obrigado.

    Pablo Sousa.
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 10231
    Registrado : 04/11/2009

    Re: Consulta para dar o saldo de 2 colunas

    Mensagem  JPaulo em 3/9/2017, 17:27

    [Você precisa estar registrado e conectado para ver este link.]


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    PabloSousa1977
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 15/08/2017

    Re: Consulta para dar o saldo de 2 colunas

    Mensagem  PabloSousa1977 em 3/9/2017, 22:03

    Obrigado pela força vou testar, obrigado.

    PabloSousa1977
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 15/08/2017

    Re: Consulta para dar o saldo de 2 colunas

    Mensagem  PabloSousa1977 em 5/9/2017, 17:16

    Boa Tarde Pessoal,


    Dei uma olhada nos links enviados, tem um exemplo que Claudio Maz envio, dei uma adaptada nele para meu cenário, ele puxa o saldo certinho, segue abaixo o codigo,

    Private Sub btnpuxarsaldo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnpuxarsaldo.Click
           Dim tabela As New DataTable
           Dim strsql As String

           strsql = "SELECT Código, Data, Descrição, Entrada, Saida, (SELECT Sum(Entrada - Saida) FROM(SELECT A.*, (select count(*) from TbCaixa where [A].[Data] & [A].[Código]>=[Data] & [Código]) AS Id2 FROM (SELECT Código, Data, Descrição, Entrada, Saida FROM TbCaixa ORDER BY Data, Código) AS A ORDER BY A.Data, A.Código) AS financeiro WHERE financeiro.Data <= B.Data and financeiro.id2 <= B.id2) AS Saldo FROM (SELECT A.*, (select count(*) from TbCaixa where [A].[Data] & [A].[Código]>=[Data] & [Código]) AS Id2 FROM (SELECT Código, Data, Descrição, Entrada, Saida FROM TbCaixa ORDER BY Data, Código) AS A ORDER BY A.Data, A.Código)  AS B"

           Dim con As New OleDbConnection
           Dim cmd As New OleDbCommand
           Try
               con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Servidor-King\Desktop\BdCaixa.accdb"
               con.Open()
               cmd.Connection = con
               cmd.CommandText = strsql

               Using reader As OleDbDataReader = cmd.ExecuteReader()
                   tabela.Load(reader)
                   Me.dgvcaixa.DataSource = tabela
               End Using

           Catch ex As Exception
               MessageBox.Show("Erro : " & ex.Message, "Dados Não Existe, Favor verificar Datas!!!")
           Finally
               con.Close()
           End Try

           
           Editar()


       End Sub


    Esse Código funcionou, so que depois que ele puxa o saldo preciso que grave no banco de dados o saldo nas linhas, ai tentei assim segue abaixo,


    Private Sub Editar()
           Dim tabela As New DataTable
           Dim strsql As String

           strsql = "Update(TbCaixa) SET Data = ?, Descrição = ?, Entrada = ?, Saida = ?, Saldo = ? WHERE (Código = ?) AND (? = 1 AND Data IS NULL OR Data = ?) AND (? = 1 AND Descrição IS NULL OR Descrição = ?) AND (? = 1 AND Entrada IS NULL OR Entrada = ?) AND (? = 1 AND Saida IS NULL OR Saida = ?) AND (? = 1 AND Saldo IS NULL OR Saldo = ?)"

           Dim con As New OleDbConnection
           Dim cmd As New OleDbCommand
           Try
               con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Servidor-King\Desktop\BdCaixa.accdb"
               con.Open()
               cmd.Connection = con
               cmd.CommandText = strsql

               Using reader As OleDbDataReader = cmd.ExecuteReader()
                   tabela.Load(reader)
                   Me.dgvcaixa.DataSource = tabela
               End Using

           Catch ex As Exception
               MessageBox.Show("Erro : " & ex.Message, "Dados Não Existe, Favor verificar Datas!!!")
           Finally
               con.Close()
           End Try
       End Sub

    segue bd em anexo.

    Mas não que funcionar não grava, alguem tem uma ideia de como sanar isso???

    Desde já agradeço, muito obrigado.

    Pablo Sousa.
    Anexos
    BdCaixa.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (19 Kb) Baixado 4 vez(es)

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