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]Limpa - Campo Multi-Valor

    Compartilhe

    Maurício Bruno
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 224
    Registrado : 25/05/2015

    [Resolvido]Limpa - Campo Multi-Valor

    Mensagem  Maurício Bruno em Ter 22 Ago 2017, 19:26

    Boa Tarde!

    Precisava de uma ajuda, estou tentando limpar uma combobox que multi-valores, já utilizei Null, "", 0, Empty e não limpa o campo, apresenta um erro execução.

    Código:
    Me.txt_tipo_amostra = ""

    Agradeço a atenção e a ajuda.

    clebergyn
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 654
    Registrado : 29/08/2012

    Re: [Resolvido]Limpa - Campo Multi-Valor

    Mensagem  clebergyn em Qua 23 Ago 2017, 22:37

    tente assim
    sei que funciona com uma listbox mas nao sei se funciona com uma comobox
    Código:

    For n = (Me!SuaComobox - 1) To 0 Step -1
    If Me.SuaComobox.Selected(n) = True Then Me.SuaComobox.Selected(n) = False
    Next

    ou assim

    Código:

    Function LimpaLista()

        Dim frm As Form, ctl As Control
        Dim varItm As Variant

      ' Set frm = Forms!SeuFormulario
        Set ctl = Forms!SeuFormulario!SuaComobox   

        For Each varItm In ctl.ItemsSelected
     
        ctl.Selected(varItm) = False
     
      End If
        Next varItm
    End Function
    ' depois coloque no botao limpar a funçao
    call limpalista

    Maurício Bruno
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 224
    Registrado : 25/05/2015

    Limpa - Campo Multi-Valor

    Mensagem  Maurício Bruno em Qui 24 Ago 2017, 13:43

    clebergyn,

    Bom Dia!
    Testei aqui e não funcionou.

    Agradeço desde já a ajuda e atenção.

    clebergyn
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 654
    Registrado : 29/08/2012

    Re: [Resolvido]Limpa - Campo Multi-Valor

    Mensagem  clebergyn em Qui 24 Ago 2017, 18:57

    envia seu bd zipado para te atendermos melhor

    Maurício Bruno
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 224
    Registrado : 25/05/2015

    Limpa - Campo Multi-Valor

    Mensagem  Maurício Bruno em Qui 24 Ago 2017, 19:47

    clebergyn,

    Segue o banco de dados.

    Obrigado pela ajuda e atenção.
    Anexos
    TESTE.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (73 Kb) Baixado 5 vez(es)

    clebergyn
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 654
    Registrado : 29/08/2012

    Re: [Resolvido]Limpa - Campo Multi-Valor

    Mensagem  clebergyn em Qui 24 Ago 2017, 20:30

    na verdade tem que excluir direto na tabela

    tente assim que vai dar certo

    Código:

    CurrentDb.Execute "DELETE SuaTabela.SeuCampoMultiValoles.Value FROM SuaTabela ":
    me.txt_tipo_amostra.requery


    clebergyn
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 654
    Registrado : 29/08/2012

    Re: [Resolvido]Limpa - Campo Multi-Valor

    Mensagem  clebergyn em Qui 24 Ago 2017, 20:51

    Não consegui entender sua base de dados, principalmente o SQL que colocou no campo
    com multipla seleção na tabela.

    então faça como coloquei acima que vai dar certo, teste primeiro com um simples SQL
    no campo da consulta.

    para limpar a lista comobox pode tentar tipo : Me.txt_analise_fq.RowSource = Me.txt_analise_fq.RowSource
    talvez resolva agora se nao resolver faça o que te mostrei acima

    Maurício Bruno
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 224
    Registrado : 25/05/2015

    Limpa - Campo Multi-Valor

    Mensagem  Maurício Bruno em Sex 25 Ago 2017, 13:11

    clebergyn,

    Mestre você e o cara, o negócio funcionou em partes, entretanto, quando eu desmarca o campo ele executa e apaga os dados, mas funciona uma vez e para, tem hora que funciona outras horas não, o que será que pode ser?

    Código:
    Private Sub check_analise_MB_Click()
    If Me.check_analise_MB = -1 Then
    Me.txt_analise_mb.Enabled = True
    Else
    Me.txt_analise_mb.Enabled = False
    Me.txt_opção_analise_mb = ""
    CurrentDb.Execute "DELETE [Tbl_IRM_Cadastro_de_Chamados_SAC].[Analise Microbiologico (Amostra)].Value FROM [Tbl_IRM_Cadastro_de_Chamados_SAC]":
    Me.txt_analise_mb.Requery
    End If
    End Sub


    Agradeço a ajuda e atenção.

    clebergyn
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 654
    Registrado : 29/08/2012

    Re: [Resolvido]Limpa - Campo Multi-Valor

    Mensagem  clebergyn em Sex 25 Ago 2017, 19:44

    então, tente colocando uma funçao para salvar antes do delete e veja se da certo

    Código:

    Private Sub check_analise_MB_Click()
    If Me.check_analise_MB = -1 Then
    Me.txt_analise_mb.Enabled = True
    Else
    Me.txt_analise_mb.Enabled = False
    Me.txt_opção_analise_mb = ""
    DoCmd.RunCommand acCmdSaveRecord  'coloque esta função para salvar
    CurrentDb.Execute "DELETE [Tbl_IRM_Cadastro_de_Chamados_SAC].[Analise Microbiologico (Amostra)].Value FROM [Tbl_IRM_Cadastro_de_Chamados_SAC]":
    Me.txt_analise_mb.Requery
    End If
    End Sub

    Maurício Bruno
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 224
    Registrado : 25/05/2015

    Limpa - Campo Multi-Valor

    Mensagem  Maurício Bruno em Sex 25 Ago 2017, 20:47

    clebergyn,

    Mestre, não funcionou.

    clebergyn
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 654
    Registrado : 29/08/2012

    Re: [Resolvido]Limpa - Campo Multi-Valor

    Mensagem  clebergyn em Sex 25 Ago 2017, 21:03

    dificil pois a sua base de dados não esta abrindo aqui no meu pc pois

    deve ter tabelas vinculadas no bd ao seu pc

    mas o caminho é esse mesmo ai

    Código:

    DoCmd.RunCommand acCmdSaveRecord  
    CurrentDb.Execute "DELETE [Tbl_IRM_Cadastro_de_Chamados_SAC].[Analise Microbiologico (Amostra)].Value FROM [Tbl_IRM_Cadastro_de_Chamados_SAC]":
    Me.txt_analise_mb.Requery

    precisa de ver se voce esta deletando na tabela correta

    aqui funcionou com uma simples tabela com campo multivalores

    clebergyn
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 654
    Registrado : 29/08/2012

    Re: [Resolvido]Limpa - Campo Multi-Valor

    Mensagem  clebergyn em Sex 25 Ago 2017, 22:43

    Na realidade ainda tem a cláusula "Where" ainda neste SQL teria que acrescentar assim para excluir somente o registro atual:

    Código:

    DoCmd.RunCommand acCmdSaveRecord 
    CurrentDb.Execute "DELETE [Tbl_IRM_Cadastro_de_Chamados_SAC].[Analise Microbiologico (Amostra)].Value FROM [Tbl_IRM_Cadastro_de_Chamados_SAC] Where [Tbl_IRM_Cadastro_de_Chamados_SAC].[Analise Microbiologico (Amostra)]='"& [seucampocombobox]&"'":
    Me.txt_analise_mb.Requery

    do outro jeito ele apaga em todos os registros, neste ai ele apaga somente no registro atual

    Maurício Bruno
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 224
    Registrado : 25/05/2015

    Limpa - Campo Multi-Valor

    Mensagem  Maurício Bruno em Seg 28 Ago 2017, 13:13

    clebergyn,

    Mestre, esta dando um erro em tempo de execução '13': Tipos Incompatíveis.

    Código:
    Private Sub check_analise_MB_Click()
    If Me.check_analise_MB = -1 Then
    Me.txt_analise_mb.Enabled = True
    Else
    Me.txt_analise_mb.Enabled = False
    Me.txt_opção_analise_mb = ""
    DoCmd.RunCommand acCmdSaveRecord
    CurrentDb.Execute "DELETE [Tbl_IRM_Cadastro_de_Chamados_SAC].[Analise Microbiologico (Amostra)].Value FROM [Tbl_IRM_Cadastro_de_Chamados_SAC] Where [Tbl_IRM_Cadastro_de_Chamados_SAC].[Analise Microbiologico (Amostra)]='" & [txt_analise_mb] & "'":
    Me.txt_analise_mb.Requery
    End If
    End Sub

    clebergyn
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 654
    Registrado : 29/08/2012

    Re: [Resolvido]Limpa - Campo Multi-Valor

    Mensagem  clebergyn em Seg 28 Ago 2017, 15:58

    então,
    é que nao pode usar o campo multivalores na clausula where, tente assim com o campo
    [ID Chamado]

    assim
    Código:
    ... Where [Tbl_IRM_Cadastro_de_Chamados_SAC].[ID Chamado]=" & [ID Chamado]

    Maurício Bruno
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 224
    Registrado : 25/05/2015

    Limpa - Campo Multi-Valor

    Mensagem  Maurício Bruno em Seg 28 Ago 2017, 16:29

    clebergyn,

    Você e fera mesmo...rsrs

    Porém, esbarrei em um problema. Ao clicar no fleg ele salva primeiro para depois limpar, o problema no meu formulário eu tenho outros campos que as vezes foram preenchidos, e seu cancelar a operação a informação ficará gravado devido esta operação de DoCmd.RunCommand acCmdSaveRecord.

    O que posso fazer?

    Desde já agradeço demais pela ajuda.

    clebergyn
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 654
    Registrado : 29/08/2012

    Re: [Resolvido]Limpa - Campo Multi-Valor

    Mensagem  clebergyn em Seg 28 Ago 2017, 16:37

    faça o teste sem a função DoCmd.RunCommand acCmdSaveRecord
    e veja se da certo

    mas pelos testes que fiz aqui, tem que salvar mesmo antes, não conheço outro jeito

    Maurício Bruno
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 224
    Registrado : 25/05/2015

    Limpa - Campo Multi-Valor

    Mensagem  Maurício Bruno em Seg 28 Ago 2017, 17:03

    clebergyn,

    Não funciona mesmo...

    clebergyn
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 654
    Registrado : 29/08/2012

    Re: [Resolvido]Limpa - Campo Multi-Valor

    Mensagem  clebergyn em Seg 28 Ago 2017, 18:31

    Acredito ser falha da Microsoft, muitos procuram solução e não acham, e muitos aconselham até em nao usar multivalores na combobox,
    parece que os dados ficam guardados em uma tabela oculta antes de ir para a tabela principal ao salvar
    então só resta esta forma mesmo, salvando e excluindo via sql

    clebergyn
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 654
    Registrado : 29/08/2012

    Re: [Resolvido]Limpa - Campo Multi-Valor

    Mensagem  clebergyn em Seg 28 Ago 2017, 19:06

    Então, segue ai a resposta final

    simples, faça assim que vai dar certo, pelo menos aqui deu

    SuaCombobox.Value = Array()

    ou

    Me.txt_analise_mb.Value = Array()

    Maurício Bruno
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 224
    Registrado : 25/05/2015

    [Resolvido]Limpa - Campo Multi-Valor

    Mensagem  Maurício Bruno em Seg 28 Ago 2017, 19:23

    clebergyn,

    Mestre, Funcionou certinho.

    Muito obrigado.

      Data/hora atual: Ter 21 Nov 2017, 17:32