MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


2 participantes

    Atualizar LB Total de uma List Box.

    avatar
    MMousinho
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 51
    Registrado : 02/08/2016

    Atualizar LB Total de uma List Box. Empty Atualizar LB Total de uma List Box.

    Mensagem  MMousinho 6/7/2017, 19:04

    Srs. Boa tarde.

    Estou com um banco de dados e nele tem o form vendas, neste form tenho 7 List box (Descrição, Tipo, Marca, Modelo, Quantidade, Valor Unitario, Valor Total), tudo funcionando normalmente, porém, criei um botão para remover item destas list, ex:

    Tenho 3 produtos selecionado, cada um com valor total de R$ 55,00, o valor no lb_total esta correto R$165,00, mais decido devolver um produto e seleciono a lista dele e removo da mesma, me sobraram dois produtos de R$ 55,00, porém o valor ainda esta de 165,00.

    Alguém consegue me ajudar a atualizar esta LB?

    Segue em anexo o modelo.
    Anexos
    Atualizar LB Total de uma List Box. AttachmentBanco.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (227 Kb) Baixado 6 vez(es)
    avatar
    MMousinho
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 51
    Registrado : 02/08/2016

    Atualizar LB Total de uma List Box. Empty Re: Atualizar LB Total de uma List Box.

    Mensagem  MMousinho 7/7/2017, 01:01

    Pessoal, fiz uma mudança no código e estou quase la...

    Agora esta atualizando corretamento a quantidade de produtos vendidos!!!

    No total de esta atualizando, mais errado.... ex:

    Escolhi 3 x o Produto "LINHA CORRENTE CXT C/24 CXS", cada um custa R$ 72,00 REAIS no exemplo... então removi um deles e era para o total ter atualizado para R$ 144,00 REAIS...mais atualizou para R$ 72,00 REAIS...!

    Alguém pode me ajudar?

    Quando removo um item da linha...automaticamente anula o primeiro também.
    Anexos
    Atualizar LB Total de uma List Box. AttachmentBanco.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (291 Kb) Baixado 11 vez(es)
    avatar
    MMousinho
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 51
    Registrado : 02/08/2016

    Atualizar LB Total de uma List Box. Empty Re: Atualizar LB Total de uma List Box.

    Mensagem  MMousinho 8/7/2017, 00:50

    Alguém me ajuda por favor?
    avatar
    Phillip_Junior
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 179
    Registrado : 09/12/2016

    Atualizar LB Total de uma List Box. Empty Re: Atualizar LB Total de uma List Box.

    Mensagem  Phillip_Junior 8/7/2017, 05:02

    Olá MMousinho


    Olhei seu projeto!

    Gostaria de saber se, foi vc que escreveu o código para calcular a soma dos produtos na sua ( list_valor_total ) ou se vc buscou o código pronto e somente fez uma adaptação e alterou para o seu uso ????

    Pergunto isso pq seu problema, seria fácil lhe dar a solução, mas acredito que com um projeto igual ao seu que envolve cálculos, é de suma importância sabermos onde está nosso erro.
    Veja bem!

    Posso adiantar que seu problema é o seguinte:

    Quando clicamos no botão (escolher produto), ele faz toda a execução do seu código em calcular o valor dos produtos na sua (list_valor_total) e insere os resultados dessas somas
    em rótulos, tais como o rótulo que recebe o valor total das vendas (Me.lb_total.Caption) e teima em não atualizar quando vc remove um item da lista. Até aqui tudo bem.

    Ocorre que, ao executar esse comando de escolher um produto, os valores que são somados e inseridos nesses rótulos tais como o rótulo teimoso, eles ficam estáticos, ou seja, não estão em nenhum lugar do seu banco de dados a não ser somente nesses rótulos.

    Então:

    Isso significa, que por mais que vc tente, não irá conseguir alterar o valor desse rótulo (Me.lb_total.Caption) onde informa o valor total das vendas se no código
    do evento clicar do botão remover item, vc não informa ao sistema que ele faça o mesmo procedimento de calculo que vc tem no evento do botão (escolher produto).

    Seria o mesmo que eu colocar um rótulo no form escrever nele abc, e criar um botão que mude a cor dele.
    Se no evento do meu botão está dizendo que é pra mudar a cor, eu não vou conseguir trocar abc por 123.
    Eu terei que colocar que quero isso no meu código.

    No seu caso:

    O sistema não irá conseguir calcular novamente a soma de todos produtos na sua lista e inserir o resultado no rótulo se vc não informar isso no código do botão
    remover item.

    Para solucionar seu problema, presumindo que vc escreveu seu código do botão (escolher produto), vc deve após remover um item, informar no código do botão remover que ele recalcule a soma dos produtos na sua list e insira no rótulo (Me.lb_total.Caption) o resultado novamente.

    Veja se entendeu oq tentei lhe explicar, verifique se consegue com essas explicações resolver seu problema, caso não, retorne



    Aguardo e abraços


    .................................................................................
    Phillip_Junior
    Analista de Sistemas
    avatar
    MMousinho
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 51
    Registrado : 02/08/2016

    Atualizar LB Total de uma List Box. Empty Re: Atualizar LB Total de uma List Box.

    Mensagem  MMousinho 10/7/2017, 22:35

    Sua sugestão deu certo man, porém sempre cancela o primeiro item e não o selecionado.

    Exclui da lista o selecionado, mais no calculo sempre é o primeiro da lista.

    Foi eu que escrevi, mais com auxilio de videos aulas, sou iniciante ainda.
    avatar
    Phillip_Junior
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 179
    Registrado : 09/12/2016

    Atualizar LB Total de uma List Box. Empty Re: Atualizar LB Total de uma List Box.

    Mensagem  Phillip_Junior 11/7/2017, 00:15

    Boa noite amigo !

    Seguinte! vou olhar o que conseguimos organizar nos seus códigos e lhe mando retorno, mas informo que está bastante confuso as coisas nele.
    Na verdade, quando criamos uma tela de vendas, podemos fazer a x formas e usar a imaginação. Mas sempre pensando que quando menos utilizarmos o mouse melhor.

    Como ontem postei um exemplo para um amigo nosso aqui do fórum sobre esse assunto, estou disponibilizando os dois exemplos que envie a ele para ele estudar e ter ideias inovadas no projeto dele e espero que lhe ajude tbm.

    Comento sobre os exemplos que fiz, porque um deles utilizei uma list tbm para apresentar o produto vendido. No seu caso vc está com várias list, então acredito que observando os exemplos vc terá novas ideias e talvez ajude vc, pois não se trata de códigos avançados e nem muito menos existe impossibilidades de adaptar.

    De uma olhada e me retorne se tiver dificuldades que tentaremos ajudar.

    Quanto ao seu problema vou dar uma olhada e retornarei com a solução nesse tópico. Outras dúvidas abra um tópico insira o titulo e pode perguntar ok ? Abraços

    Link exemplo simples tela de vendas:

    https://www.maximoaccess.com/download.forum?id=16783



    .................................................................................
    Phillip_Junior
    Analista de Sistemas
    avatar
    MMousinho
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 51
    Registrado : 02/08/2016

    Atualizar LB Total de uma List Box. Empty Re: Atualizar LB Total de uma List Box.

    Mensagem  MMousinho 11/7/2017, 03:16

    Obrigado pela ajuda man.

    Vou dar uma olhada no seu, mais se puder olhar o meu agradeço também.
    avatar
    Phillip_Junior
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 179
    Registrado : 09/12/2016

    Atualizar LB Total de uma List Box. Empty Re: Atualizar LB Total de uma List Box.

    Mensagem  Phillip_Junior 11/7/2017, 13:21

    Olá
    Post o código que estas usando agora no botão remover.



    .................................................................................
    Phillip_Junior
    Analista de Sistemas
    avatar
    MMousinho
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 51
    Registrado : 02/08/2016

    Atualizar LB Total de uma List Box. Empty Re: Atualizar LB Total de uma List Box.

    Mensagem  MMousinho 13/7/2017, 18:02


    Segue man.

    Private Sub btn_remove_Click()

    Me.txt_codbarras.Value = "a"

    If Me.list_desc.ListIndex > -1 Then
    Me.list_desc.RemoveItem (Me.list_desc.ListIndex)
    Me.list_desc = Null


    Else
    MsgBox "Não foi selecionado um ítem", vbCritical, "Erro"
    End If

    If Me.list_valor_total.ListIndex > -1 Then
    Me.list_valor_total.RemoveItem (Me.list_valor_total.ListIndex)
    Me.list_valor_total = Null

    Else
    MsgBox "Não foi selecionado um ítem", vbCritical, "Erro"
    End If

    If Me.list_venda.ListIndex > -1 Then
    Me.list_venda.RemoveItem (Me.list_venda.ListIndex)
    Me.list_venda = Null

    Else
    MsgBox "Não foi selecionado um ítem", vbCritical, "Erro"
    End If

    If Me.list_quant.ListIndex > -1 Then
    Me.list_quant.RemoveItem (Me.list_quant.ListIndex)
    Me.list_quant = Null

    Else
    MsgBox "Não foi selecionado um ítem", vbCritical, "Erro"
    End If

    If Me.list_tipo.ListIndex > -1 Then
    Me.list_tipo.RemoveItem (Me.list_tipo.ListIndex)
    Me.list_tipo = Null

    Else
    MsgBox "Não foi selecionado um ítem", vbCritical, "Erro"
    End If

    If Me.list_marca.ListIndex > -1 Then
    Me.list_marca.RemoveItem (Me.list_marca.ListIndex)
    Me.list_marca = Null

    Else
    MsgBox "Não foi selecionado um ítem", vbCritical, "Erro"
    End If

    If Me.list_modelo.ListIndex > -1 Then
    Me.list_modelo.RemoveItem (Me.list_modelo.ListIndex)
    Me.list_modelo = Null

    Else
    MsgBox "Não foi selecionado um ítem", vbCritical, "Erro"
    End If

    CodBarrasProd = Me.txt_codbarras.Value
    sql = "SELECT * FROM CAD_PRODUTOS WHERE CODIGO_BARRAS = '" & CodBarrasProd & " '"
    Set rs = CurrentDb.OpenRecordset(sql)


    If rs.BOF And rs.EOF Then
    MsgBox "Verifique o Código de Barras, Produto Inexistente", vbOKOnly, "Código Inexistente"
    Exit Sub




    Me.btn_escolher.Enabled = True
    Me.btn_escolher.Default = True


    Else

    ValorProd = rs!VENDA
    DescricaoProd = rs!DESCRIÇÃO_PRODUTO
    MarcaProd = rs!MARCA
    ModeloProd = rs!MODELO
    TipoItemProdutos = rs!TIPO_DE_ITEM


    End If

    Me.list_desc.AddItem (DescricaoProd)
    Me.list_marca.AddItem (MarcaProd)
    Me.list_modelo.AddItem (ModeloProd)
    Me.list_tipo.AddItem (TipoItemProdutos)
    Me.list_venda.AddItem (Format(ValorProd, "R$ #,###.00"))
    Me.list_quant.AddItem (Me.txt_quantidade.Value)
    ValorTot = Me.txt_quantidade.Value * ValorProd
    Me.list_valor_total.AddItem (Format(ValorTot, "R$ #,###.00"))


    contadorLista = list_desc.ListCount

    With prodVendido(contadorLista)
    .idprod = rs!ID_PRODUTO
    .desc = DescricaoProd
    .MARCA = MarcaProd
    .MODELO = ModeloProd
    .tipo_item = TipoItemProdutos
    .quant = Me.txt_quantidade.Value
    .valor_venda = ValorProd
    .valor_total = ValorTot
    End With

    TotalVenda = 0
    For ContVendas = 1 To contadorLista
    TotalVenda = TotalVenda + prodVendido(ContVendas).valor_total
    Next ContVendas

    ContadorProdutosVen = 0

    For ContProd = 1 To contadorLista
    ContadorProdutosVen = ContadorProdutosVen + prodVendido(ContProd).quant
    Next ContProd

    Me.lb_quantidade.Caption = ContadorProdutosVen
    Me.lb_total.Caption = Format(TotalVenda, "R$#,###.00")

    Me.txt_quantidade.Value = 1
    Me.txt_codbarras.Value = ""
    Me.txt_codbarras.SetFocus

    rs.Close
    Set rs = Nothing

    Exit Sub
    'erro:
    'MsgBox erro.Description

    End Sub
    avatar
    Phillip_Junior
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 179
    Registrado : 09/12/2016

    Atualizar LB Total de uma List Box. Empty Re: Atualizar LB Total de uma List Box.

    Mensagem  Phillip_Junior 14/7/2017, 04:41

    Olá amigo !

    Me desculpe a demora em retornar

    Estava observando seu código aqui agora referente a excluir a linha.

    Coloque esse código no lugar para ver se resolve seu problema de estar excluindo sempre a primeira.

    Private Sub btn_remove_Click()

    Me.txt_codbarras.Value = "a"

    Dim removerlinha As Integer

    If Me.list_desc.ListIndex > -1 Then
    removerlinha = Me.list_desc.ItemsSelected(Index)
    Me.list_desc.RemoveItem (removerlinha)
    Else
    MsgBox "Não foi selecionado um ítem", vbCritical, "Erro"
    End If
    If Me.list_valor_total.ListIndex > -1 Then
    removerlinha = Me.list_valor_total.ItemsSelected(Index)
    Me.list_valor_total.RemoveItem (removerlinha)
    Else
    MsgBox "Não foi selecionado um ítem", vbCritical, "Erro"
    End If

    If Me.list_venda.ListIndex > -1 Then
    removerlinha = Me.list_venda.ItemsSelected(Index)
    Me.list_venda.RemoveItem (removerlinha)
    Else
    MsgBox "Não foi selecionado um ítem", vbCritical, "Erro"
    End If

    If Me.list_quant.ListIndex > -1 Then
    removerlinha = Me.list_quant.ItemsSelected(Index)
    Me.list_quant.RemoveItem (removerlinha)
    Else
    MsgBox "Não foi selecionado um ítem", vbCritical, "Erro"
    End If

    If Me.list_tipo.ListIndex > -1 Then
    removerlinha = Me.list_tipo.ItemsSelected(Index)
    Me.list_tipo.RemoveItem (removerlinha)
    Else
    MsgBox "Não foi selecionado um ítem", vbCritical, "Erro"
    End If

    If Me.list_marca.ListIndex > -1 Then
    removerlinha = Me.list_marca.ItemsSelected(Index)
    Me.list_marca.RemoveItem (removerlinha)
    Else
    MsgBox "Não foi selecionado um ítem", vbCritical, "Erro"
    End If

    If Me.list_modelo.ListIndex > -1 Then
    removerlinha = Me.list_modelo.ItemsSelected(Index)
    Me.list_modelo.RemoveItem (removerlinha)
    Else
    MsgBox "Não foi selecionado um ítem", vbCritical, "Erro"
    End If


    CodBarrasProd = Me.txt_codbarras.Value
    sql = "SELECT * FROM CAD_PRODUTOS WHERE CODIGO_BARRAS = '" & CodBarrasProd & " '"
    Set rs = CurrentDb.OpenRecordset(sql)


    If rs.BOF And rs.EOF Then
    MsgBox "Verifique o Código de Barras, Produto Inexistente", vbOKOnly, "Código Inexistente"
    Exit Sub




    Me.btn_escolher.Enabled = True
    Me.btn_escolher.Default = True


    Else

    ValorProd = rs!VENDA
    DescricaoProd = rs!DESCRIÇÃO_PRODUTO
    MarcaProd = rs!MARCA
    ModeloProd = rs!MODELO
    TipoItemProdutos = rs!TIPO_DE_ITEM


    End If

    Me.list_desc.AddItem (DescricaoProd)
    Me.list_marca.AddItem (MarcaProd)
    Me.list_modelo.AddItem (ModeloProd)
    Me.list_tipo.AddItem (TipoItemProdutos)
    Me.list_venda.AddItem (Format(ValorProd, "R$ #,###.00"))
    Me.list_quant.AddItem (Me.txt_quantidade.Value)
    ValorTot = Me.txt_quantidade.Value * ValorProd
    Me.list_valor_total.AddItem (Format(ValorTot, "R$ #,###.00"))


    contadorLista = list_desc.ListCount

    With prodVendido(contadorLista)
    .idprod = rs!ID_PRODUTO
    .desc = DescricaoProd
    .MARCA = MarcaProd
    .MODELO = ModeloProd
    .tipo_item = TipoItemProdutos
    .quant = Me.txt_quantidade.Value
    .valor_venda = ValorProd
    .valor_total = ValorTot
    End With

    TotalVenda = 0
    For ContVendas = 1 To contadorLista
    TotalVenda = TotalVenda + prodVendido(ContVendas).valor_total
    Next ContVendas

    ContadorProdutosVen = 0

    For ContProd = 1 To contadorLista
    ContadorProdutosVen = ContadorProdutosVen + prodVendido(ContProd).quant
    Next ContProd

    Me.lb_quantidade.Caption = ContadorProdutosVen
    Me.lb_total.Caption = Format(TotalVenda, "R$#,###.00")

    Me.txt_quantidade.Value = 1
    Me.txt_codbarras.Value = ""
    Me.txt_codbarras.SetFocus

    rs.Close
    Set rs = Nothing

    Exit Sub
    'erro:
    'MsgBox erro.Description

    End Sub


    Obs: Verifique se resolveu e retorne sobre a dúvida desse tópico ok?

    Amigo !

    Fica aqui minha dica pra vc que tem um bom conhecimento mesmo que pegando ali e aqui. Tente adaptar seu código para capturar os dados na busca do produto e inserir os dados numa única list. E que nessa list, vc tenha um campo chamado Item. Assim, quando vc quiser excluir um item da sua lista, basta vc digitar numa campo o item desejado e clicar num botão se assim desejar ser o evento e excluir esse item de dentro dessa lista.
    Tens capacidade. Estude bem que vai conseguir.

    Assim dessa forma fica muito manual tudo e até dificulta se por erro for clicado na linha acima ou abaixo da que realmente deseja excluir.

    Att
    Phillip

    Abraços e Sucesso


    .................................................................................
    Phillip_Junior
    Analista de Sistemas
    avatar
    MMousinho
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 51
    Registrado : 02/08/2016

    Atualizar LB Total de uma List Box. Empty Re: Atualizar LB Total de uma List Box.

    Mensagem  MMousinho 14/7/2017, 19:31

    Man, Valeu pelas dicas, vou ver o que consigo.

    Por hora esta removendo normalmente, apenas a ultima linha que ainda esta bugando.

    Mais vou ver e qq novidade posto...Valeu.
    avatar
    Phillip_Junior
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 179
    Registrado : 09/12/2016

    Atualizar LB Total de uma List Box. Empty Re: Atualizar LB Total de uma List Box.

    Mensagem  Phillip_Junior 14/7/2017, 19:58

    Ops!

    Resolveu mas a última linha esta bugando ???
    Abra um novo tópico amigão e vamos analisar esse bug

    Abraços.


    .................................................................................
    Phillip_Junior
    Analista de Sistemas

    Conteúdo patrocinado


    Atualizar LB Total de uma List Box. Empty Re: Atualizar LB Total de uma List Box.

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 23/11/2024, 03:49