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]Apagar uma caixa de seleção sim/não

    Compartilhe

    JSommavilla
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 40
    Registrado : 21/09/2014

    [Resolvido]Apagar uma caixa de seleção sim/não

    Mensagem  JSommavilla em Qui 18 Jan 2018, 2:55 am

    Prezados, boa noite!

    Parece ser uma coisa fácil, mas eu já pesquisei muito aqui no fórum e pela net, encontrei algumas soluções que pareciam resolver o problema, mas ainda não consegui desvendar.

    O caso é o seguinte:

    Tenho um formulário principal.que se chama "conciliação" e dois subformulários, um sub mostra os valores do extrato e o outro sub mostra os valores do movimento. Os subformulários estão definidos como folha de dados e existe um campo "OK" (SIM/NÃO) em ambos, onde o usuário deverá selecionar os registros para conciliar os valores. Até aí, tudo certo.

    Como é um formulário de conciliação de contas, eu coloquei um botão de "Conciliar" e é aqui que reside o problema. Ele faz uma checagem de soma, e em caso dos valores selecionados de ambos os subs forem iguais, ele faz a conciliação e marca nos dois subs, no campo "OK", como "sim".

    Eu quero que quando o usuário selecionar os valores dos dois subs, no caso da soma dos dois não for igual, que sejam simplesmente "apagados", no campo "OK", todos os itens selecionados pelo usuário.

    Já tentei vários códigos. O código abaixo realmente limpa o campo. Porém somente o campo onde o cursor está no registro, o restante ele não limpa:

    Private Sub btn_conciliar_Click()

    On Error GoTo Sair:
    Dim Erro As Integer

    If Me.txttotalgeral <> Me.txttotalgeral1 Then  'Testa se a soma dos campos extrato e movimento são iguais

    MsgBox "A soma dos valores a conciliar deve ser igual!", vbExclamation

    Me.Frm_LançamentosExtratosubformulário![ok].Value = False 'Limpa o campo "conciliado" do formulário do extrato

    Me.Frm_SubformularioMovimento![ok].Value = False  'Limpa o campo "conciliado" fo formulário dos lançamentos

    Else

    Me.Frm_SubformularioMovimento.Requery
    Me.Frm_LançamentosExtratosubformulário.Requery

    End If

    Sair:
    If Err <> 0 Then Erro = MsgBox(Err.Description, vbCritical, "Erro Crítico!")

    End sub

    Caso alguém puder me ajudar,

    Agradeço antecipadamente.
    avatar
    webruxim
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 08/12/2013

    Re: [Resolvido]Apagar uma caixa de seleção sim/não

    Mensagem  webruxim em Qui 18 Jan 2018, 6:54 am

    Olá Amigo, vejamos:

    Código:


    Private Sub btn_conciliar_Click()

    'Se o campo txttotalgeral for igual ao campo txttotalgeral1
    If Me.txttotalgeral = Me.txttotalgeral1 then
        'Então marca os campos (Sim/Não) OK como verdadeiro (True)
        Me!Frm_LançamentosExtratosubformulário!ok = True
        Me!Frm_SubformularioMovimento!ok = True
        Comando Salvar
        Me.Frm_SubformularioMovimento.Requery
        Me.Frm_LançamentosExtratosubformulário.Requery
    Else 'Se os campos não for igual ENTAO
        'Emite a mensagem que a soma devem conciliar e marca os (Sim/Não) como false
        MsgBox "A soma dos valores a conciliar deve ser igual!", vbExclamation

        Me!Frm_LançamentosExtratosubformulário!ok = False 'Limpa o campo "conciliado" do formulário do extrato
        Me!Frm_SubformularioMovimento!ok = False  'Limpa o campo "conciliado" fo formulário dos lançamentos

    'Nota:
    'Se Me!Frm_LançamentosExtratosubformulário!ok não for um Subformulário tira o Me! ficando somente
    'Frm_LançamentosExtratosubformulário!ok = False
    End If

    End sub


    Aguardo retorno...

    JSommavilla
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 40
    Registrado : 21/09/2014

    Re: [Resolvido]Apagar uma caixa de seleção sim/não

    Mensagem  JSommavilla em Qui 18 Jan 2018, 1:15 pm

    Prezado, muito obrigado pelo interesse.
    Vou fazer os testes e volto a postar!

    JSommavilla
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 40
    Registrado : 21/09/2014

    Re: [Resolvido]Apagar uma caixa de seleção sim/não

    Mensagem  JSommavilla em Qui 18 Jan 2018, 1:27 pm

    Prezado!

    Testei o seu código. Ele funciona, porém somente se o cursor está no registro, como explicado. Os outros valores ele ainda não está apagando.
    avatar
    webruxim
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 08/12/2013

    Re: [Resolvido]Apagar uma caixa de seleção sim/não

    Mensagem  webruxim em Sex 19 Jan 2018, 5:54 am

    JSommavilla, teria como postar parte do BD para que eu posso entender melhor a situação ?

    JSommavilla
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 40
    Registrado : 21/09/2014

    Re: [Resolvido]Apagar uma caixa de seleção sim/não

    Mensagem  JSommavilla em Sex 19 Jan 2018, 11:58 pm

    Prezado webruxim,

    Segue arquivo para sua análise. Fiz uma redução das tabelas e formulários, deixando somente os envolvidos na questão, para o arquivo ficar mais leve.

    Muito obrigado!
    avatar
    webruxim
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 08/12/2013

    Re: [Resolvido]Apagar uma caixa de seleção sim/não

    Mensagem  webruxim em Sab 20 Jan 2018, 5:52 am

    JSommavilla, agora sim deu pra entender melhor.

    Bom o codigo anterior que você testou funcionario se fosse somente 1 checkbox no subformulário, como não prestei atenção que o sub formulario era uma folha da dados e que teriam varios checkbox entao o comando nao vai funcionar mesmo.

    O que foi feito para você adaptar no projeto original:

    Criei 4 consultas Atualização:

    2 para o subformulario Frm_LançamentosExtratosubformulário
    - 1 para atualizar os campos para True e outra para atualizar os campos para false

    2 para o subformulario Frm_SubformularioMovimento
    - 1 para atualizar os campos para True e outra para atualizar os campos para false

    pelos meus testes aqui acho que agora esta como pretende.

    Copie as query para seu projeto original:

    qry_LançamentosExtrato_Atualização
    qry_LançamentosExtrato_AtualizaçãoFalso
    qry_Movimento_Atualização
    qry_Movimento_AtualizaçãoFalso

    copie o botao Comando111 junto com o seu codigo para seu projeto original e faça os testes
    neste botao ja esta fazendo a comparação dos textbox se for iguais marca true se nao marca false ok

    fico no aguardo...
    Anexos
    Financas_old.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.8 Mb) Baixado 4 vez(es)

    JSommavilla
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 40
    Registrado : 21/09/2014

    Re: [Resolvido]Apagar uma caixa de seleção sim/não

    Mensagem  JSommavilla em Sab 20 Jan 2018, 3:15 pm

    Prezado webruxim!

    Agradeço novamente pelo seu interesse em me ajudar.

    Os ajustes que  você fez, ficaram ótimos. Porém, eles marcam como "verdadeiro", todos os itens no formulário folha de dados quando a soma dos campos é igual.

    O que preciso é que sejam marcados como verdadeiro, ou seja, quando a soma dos dois campos é igual, somente os itens selecionados pelo usuário. Estes itens seriam gravados nas tabelas no campo "OK", como verdadeiros. Os demais itens devem ficar como falso, pois ainda não foram conciliados.

    E quando os campos da soma não forem iguais, não há a necessidade de atualizar as tabelas. Apenas "limpar" os itens selecionados pelo usuário nos dois subformulários.

    Espero ter sido claro na explicação.
    avatar
    webruxim
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 08/12/2013

    Re: [Resolvido]Apagar uma caixa de seleção sim/não

    Mensagem  webruxim em Sab 20 Jan 2018, 4:44 pm

    JSommavilla vms lá.

    Para você selecionar, você prescisa marcar o campo OK nos subs certo ?

    Entao, se os valores baterem é so atualizar os subs...

      Me.Frm_SubformularioMovimento.Requery
       Me.Frm_LançamentosExtratosubformulário.Requery



    se os valores nao baterem entao roda as querys:

       DoCmd.OpenQuery ("qry_LançamentosExtrato_Falso")
       DoCmd.OpenQuery ("qry_Movimento_Falso")


    para desmarcar os selecionados.

    faça o teste.
    fico no aguardo.
    Anexos
    Financas_old1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.7 Mb) Baixado 6 vez(es)

    JSommavilla
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 40
    Registrado : 21/09/2014

    Re: [Resolvido]Apagar uma caixa de seleção sim/não

    Mensagem  JSommavilla em Dom 21 Jan 2018, 2:16 pm

    Prezado, bom dia!

    Realmente as querys desmarcam os registros. Porém, elas também desmarcam os valores que já foram conciliados, ou seja, ela desmarca todos os registros conciliados.

    No caso em que a soma dos valores não for igual, gostaria que ele apenas desmarcasse os itens selecionados no formulário e deixasse marcados nas tabelas os itens que já foram devidamente conciliados.

    Do jeito que está ele desmarca todos os itens conciliados e não conciliados.

    Obrigado pela paciência!

    JSommavilla
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 40
    Registrado : 21/09/2014

    Re: [Resolvido]Apagar uma caixa de seleção sim/não

    Mensagem  JSommavilla em Dom 21 Jan 2018, 3:15 pm

    Para ajudar na solução, pesquisei aqui no fórum no seguinte link


    Re: [Resolvido]Marcar-desmarcar checkBox-caixa de seleção no formulário]


    E também testei o seguinte código, mas não funcionou:

    Código:
    Dim x As Long
        x = Me.CurrentRecord
        Me.Recordset.MoveFirst
      
      
        If Me.Frm_LançamentosExtratosubformulário!ok.Value = True Then
        
        x = Me.CurrentRecord
        Me.Recordset.MoveFirst
        Do While Not Me.Recordset.EOF
            Me.Frm_LançamentosExtratosubformulário!ok.Value = False
            Me.Recordset.MoveNext
        Loop
        Me.Recordset.MoveFirst
        If x > 1 Then Me.Recordset.Move x - 1
        End If[/b]

    JSommavilla
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 40
    Registrado : 21/09/2014

    Re: [Resolvido]Apagar uma caixa de seleção sim/não

    Mensagem  JSommavilla em Qua 24 Jan 2018, 12:52 am

    Consegui resolver o problema com o código abaixo, do Mestre Avelino, pesquisando aqui no fórum. Está dentro do botão "Comando67":

    Código:
    Dim rs As DAO.Recordset
    Set rs = Me.RecordsetClone 'Carrega os registros atuais do formulário
    Do While Not rs.EOF 'faz um loop desmarcando a caixa de seleção
        rs.Edit
        rs!conciliado = 0
        rs.Update
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing

    Mas este código funciona quando o botão está no subformulário. Gostaria que esse botão ficasse no formulário principal.

    Não sei como fazer a referência na linha "rs!conciliado=0"! Onde "conciliado" é a caixa de seleção.

    Como poderia ser essa referência?

    Segue BD anexo.

    Obrigado.
    Anexos
    Financas (2).zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (1.9 Mb) Baixado 3 vez(es)
    avatar
    webruxim
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 08/12/2013

    Re: [Resolvido]Apagar uma caixa de seleção sim/não

    Mensagem  webruxim em Qua 24 Jan 2018, 8:45 am

    Prezado JSommavilla,

    veja se é isso que pretende.

    faça uma pesquisa entre as datas

    01/12/2017 á 24/01/2018 no banco Monteiro 001

    para achar 2 valores iguais que vao se conciliar... e depois faça os testes com os valores que nao se conciliam ok.

    Fico no aguardo.
    Anexos
    Financas_Old2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (138 Kb) Baixado 4 vez(es)

    JSommavilla
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 40
    Registrado : 21/09/2014

    Re: [Resolvido]Apagar uma caixa de seleção sim/não

    Mensagem  JSommavilla em Qui 25 Jan 2018, 10:16 pm

    Prezado Webruxim,

    Finalmente consegui resolver o problema. Fiz algumas modificações no projeto que deram certo. Veja abaixo as alterações:

    1- Primeiro eu alterei o tipo de formulário de "folha de dados"  para "formulário contínuo".

    2- Depois, no comando caixa de seleção sim/não, no evento "Ao clicar", coloquei uma macro para selecionar registro.

    3- Nos dois subformulários, criei um botão de comando em cada um "comando67", e ocultei. Nestes botoes coloquei o seguinte código (conseguido aqui no forum de autoria do Mestre Avelino), em "ao clicar":

    Código:
    Public Sub Comando67_Click()

    Dim rs As DAO.Recordset
    Set rs = Me.RecordsetClone 'Carrega os registros atuais do formulário
    Do While Not rs.EOF 'faz um loop desmarcando a caixa de seleção
        rs.Edit
        rs!conciliado = 0
        rs.Update
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing

    End Sub


    4- Depois, no formulário principal "Conciliação", no botão "Conciliar", coloquei o seguinte código:

    Código:
    Private Sub Btn_conciliar_Click()
    'Se o campo txttotalgeral for igual ao campo txttotalgeral1

    If Me.txttotalgeral = Me.txttotalgeral1 Then
        'Então executa a consulta atualização marcando como true nos 2 Subformularios
        MsgBox "A soma dos valores confere! Os valores serão conciliados!"
        
        
        Me.Frm_LançamentosExtratosubformulário!ok = True
        Me.Frm_SubformularioMovimento!ok = True
          
        Me.Frm_SubformularioMovimento.Requery 'Atualiza o subformulário de lançamentos ainda não conciliados
        Me.Frm_SubformularioMovimentoConciliados.Requery 'Atualiza o subformulário de lançamentos já conciliados
        
        Me.Frm_LançamentosExtratosubformulário.Requery ' Atualiza o subformulário de lançamentos do Extrato ainda não conciliados
        Me.Frm_LançamentosExtratosubformulárioConciliados.Requery  ' Atualiza o subformulário de lançamentos do Extrato já conciliados
      

    Else 'Se os campos não for igual ENTAO
        'Emite a mensagem que a soma devem conciliar e marca os (Sim/Não) como false
        MsgBox "A soma dos valores a conciliar deve ser igual!", vbOKOnly
            
        Me.Frm_LançamentosExtratosubformulário.Form.Comando67_Click
        Me.Frm_SubformularioMovimento.Form.Comando67_Click
     
    End If

    End Sub

    Funfou perfeitamente!

    Agradeço por sua paciência e disposição em me ajudar, sem o qual não teria conseguido.

    Segue BD para sua análise.

    Muito obrigado.
    Anexos
    Financas_New.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (2 Mb) Baixado 5 vez(es)
    avatar
    webruxim
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 103
    Registrado : 08/12/2013

    Re: [Resolvido]Apagar uma caixa de seleção sim/não

    Mensagem  webruxim em Sex 26 Jan 2018, 5:56 am

    Disponha JSommavilla,

    O forum agradece o seu retorno.

      Data/hora atual: Sab 24 Fev 2018, 12:34 am