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

    [Resolvido]Function SomaListBox() - unindo duas lstbox na mesma função....

    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5120
    Registrado : 20/04/2011

    [Resolvido]Function SomaListBox() - unindo duas lstbox na mesma função.... Empty [Resolvido]Function SomaListBox() - unindo duas lstbox na mesma função....

    Mensagem  Silvio 27/1/2015, 15:18

    Prezados boa tarde a todos.

    Pegando carona na função de somar listbox feita pelo Jpaulo para uma listbox, estou tentando fazer a mesma função somar duas listbox.
    Porém encontro um erro no Next I.

    A função que eu estou a desenvolver está abaixo.


    Function SomaListBox() As Variant
    'By JPaulo ® Maximo Access
    'aqui soma as entradas e saidas do dia
    Dim I, A As Integer
    Dim J, B As Integer
    Dim ctl As Control
    Dim Ctla As Control

    Set ctl = Me.LstEntrada ' coloque aqui o nome da listbox de entradas
    Set Ctla = Me.Lstsaida ' coloque aqui o nome da listbox de saídas
    J = ctl.ListCount - 1
    B = Ctla.ListCount - 1

    SomaListBox = 0

    For I = 0 To J
    For A = 0 To B

    SomaListBox = SomaListBox + ctl.Column(4, I) ' alterar o numero da coluna onde vai ser somado
    SomaListBox = SomaListBox + Ctla.Column(4, A)

    Next I ' ocorre o erro aqui. " referência inválida a variavel de controle Next"
    'Next A
    SomaListBox = Format(SomaListBox, "currency")

    Me.txtresultado = SomaListBox 'txt desacoplada onde mostra o resultado da soma de entradas
    Me.txtres = SomaListBox 'txt desacoplada onde mostra o resultado da soma de saídas

    End Function

    Agradeço a todos desde já pela elucidação desse caso !


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Function SomaListBox() - unindo duas lstbox na mesma função.... Empty Re: [Resolvido]Function SomaListBox() - unindo duas lstbox na mesma função....

    Mensagem  Noobezinho 27/1/2015, 16:36

    Silvio
    Inverta a posição de um dos nexts

    For I = 0 To J
        For A = 0 To B

             SomaListBox = SomaListBox + ctl.Column(4, I) ' alterar o numero da coluna onde vai ser somado
             SomaListBox = SomaListBox + Ctla.Column(4, A)

        Next A ' ocorre o erro aqui. " referência inválida a variavel de controle Next"
    Next I ----> Veja que no teu exemplo tem um aspas simples antes do next A


    [ ]'s

    Noob


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5120
    Registrado : 20/04/2011

    [Resolvido]Function SomaListBox() - unindo duas lstbox na mesma função.... Empty Re: [Resolvido]Function SomaListBox() - unindo duas lstbox na mesma função....

    Mensagem  Silvio 27/1/2015, 16:44

    Grande Noob, deu erro.

    Se eu inverter, ele soma a saída e não a entrada, mostrando o resultado nas duas caixas de textos

    Com relação as aspas simples, eu estava apenas comentando a linha para ver o erro (Next I ----> Veja que no teu exemplo tem um aspas simples antes do next A)


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5120
    Registrado : 20/04/2011

    [Resolvido]Function SomaListBox() - unindo duas lstbox na mesma função.... Empty Re: [Resolvido]Function SomaListBox() - unindo duas lstbox na mesma função....

    Mensagem  Silvio 27/1/2015, 16:48

    Ainda dando erro....que triste isso.

    Código:

    Function SomaListBox() As Variant
    'By JPaulo ® Maximo Access

    Dim I, A As Integer
    Dim J, B As Integer
    Dim ctl As Control
    Dim Ctla As Control

    Set ctl = Me.LstEntrada
    Set Ctla = Me.Lstsaida



    J = ctl.ListCount - 1
    B = Ctla.ListCount - 1
    SomaListBox = 0
    For A = 0 To B
    For I = 0 To J

    SomaListBox = SomaListBox + ctl.Column(4, A) ' alterar o numero da coluna onde vai ser somado
    SomaListBox = SomaListBox + Ctla.Column(4, I)

    Next A  '--> aqui esta dando erro novamente.
    Next I
    SomaListBox = Format(SomaListBox, "currency")

    Me.txtresultado = SomaListBox 'txt desacoplada onde mostra o resultado da soma de entradas
    Me.txtres = SomaListBox        'txt desacoplada onde mostra o resultado da soma de saídas

    End Function


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Function SomaListBox() - unindo duas lstbox na mesma função.... Empty Re: [Resolvido]Function SomaListBox() - unindo duas lstbox na mesma função....

    Mensagem  Noobezinho 27/1/2015, 18:02

    Silvio

    Pode anexar as tabelas e forms em questão?


    Noob


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5120
    Registrado : 20/04/2011

    [Resolvido]Function SomaListBox() - unindo duas lstbox na mesma função.... Empty Re: [Resolvido]Function SomaListBox() - unindo duas lstbox na mesma função....

    Mensagem  Silvio 27/1/2015, 18:21

    Então Noob, pensei um pouco mais aqui e resolvi fazer diferente.

    Bom, no evento ao perder o foco da minha caixa de texto, chamo as duas funções:
    Call SomaListBox = aqui chamo a soma da lstentrada
    Call SomaSaida = aqui chamo a soma da lstsaida

    chamando a SomalistBox
    Código:
    Function SomaListBox() As Variant
    Dim I, J As Integer
    Dim ctl As Control
    Set ctl = Me.LstEntrada 'I e J
    J = ctl.ListCount - 1 'lstentrada
    SomaListBox = 0
    For I = 0 To J 'entrada
     SomaListBox = SomaListBox + ctl.Column(4, A) 'lstentrada
    Next I
    SomaListBox = Format(SomaListBox, "currency")
    Me.txtresultado = SomaListBox 'txt desacoplada onde mostra o resultado da soma de entradas
    End Function


    e chamando a SomaSaida
    Código:
    Function SomaSaida() As Variant

    Dim A, B As Integer
    Dim Ctla As Control

    Set Ctla = Me.Lstsaida
    B = Ctla.ListCount - 1
    SomaSaida = 0
    For A = 0 To B 'saida
    SomaSaida = SomaSaida + Ctla.Column(4, A) 'lstsaida
    Next A
    SomaSaida = Format(SomaSaida, "currency")

    Me.txtres = SomaSaida 'txt desacoplada onde mostra o resultado da soma de saídas
    End Function


    Assim pelo menos não tenho tanta dor de cabeça para unir as duas em um único código....

    O que você acha ?


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Function SomaListBox() - unindo duas lstbox na mesma função.... Empty Re: [Resolvido]Function SomaListBox() - unindo duas lstbox na mesma função....

    Mensagem  Noobezinho 27/1/2015, 18:48

    Silvio

    Experimente assim:

    Function SomaListBox() As Currency
    Dim I, J As Integer
    Dim ctl As Control
    Set ctl = Me.LstEntrada 'I e J
    J = ctl.ListCount - 1 'lstentrada
    SomaListBox = 0
    For I = 0 To J 'entrada
            SomaListBox = SomaListBox + ctl.Column(4, A) 'lstentrada
    Next I
    SomaListBox = Format(SomaListBox, "currency")
    'Me.txtresultado = SomaListBox 'txt desacoplada onde mostra o resultado da soma de entradas
    End Function


    Veja quando uma função tem o As "blablabla" ele retorna algo, no teu caso é Currency ou seja moeda.

    continuando...

    Function SomaSaida() As Currency

    Dim A, B As Integer
    Dim Ctla As Control

    Set Ctla = Me.Lstsaida
    B = Ctla.ListCount - 1
    SomaSaida = 0
    For A = 0 To B 'saida
    SomaSaida = SomaSaida + Ctla.Column(4, A) 'lstsaida
    Next A
    SomaSaida = Format(SomaSaida, "currency")

    'Me.txtres = SomaSaida 'txt desacoplada onde mostra o resultado da soma de saídas
    End Function


    Com isso , tens cada resultado em cada função.
    Então pode:

    Nomear duas variáveis 1 de entradas outra de saida:

    E = SomaListBox
    S = SomaSaida
    Me.txtresultado = E-S

    ou Somar as duas função numa textbox,

    e ainda

    O colocar as funções uma em cada textbox e
    uma outra pra somar as duas

    Experimente

    Noob


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 5120
    Registrado : 20/04/2011

    [Resolvido]Function SomaListBox() - unindo duas lstbox na mesma função.... Empty Re: [Resolvido]Function SomaListBox() - unindo duas lstbox na mesma função....

    Mensagem  Silvio 27/1/2015, 19:45

    Perfeito, fiz aqui os testes e dos dois modos funcionam.

    Agora é apenas a questão de escolher o qual.

    Abraços Noob.


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    www.maximoaccess.com/t860-resolucao-de-topicos

    "Quase tudo é possível quando se tem determinação e força de vontade. Não desista tão rápido."
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Function SomaListBox() - unindo duas lstbox na mesma função.... Empty Re: [Resolvido]Function SomaListBox() - unindo duas lstbox na mesma função....

    Mensagem  Noobezinho 27/1/2015, 21:27

    Ótimo Silvio

    Boa sorte !!


    Noob


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.

    Conteúdo patrocinado


    [Resolvido]Function SomaListBox() - unindo duas lstbox na mesma função.... Empty Re: [Resolvido]Function SomaListBox() - unindo duas lstbox na mesma função....

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 15:33