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]Excluir Registro em Branco

    mduarteteixeira
    mduarteteixeira
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 15/07/2014

    [Resolvido]Excluir Registro em Branco Empty [Resolvido]Excluir Registro em Branco

    Mensagem  mduarteteixeira em 25/3/2019, 13:26

    Olá Senhores (as),


    Possuo um formulário (Acesso_DTP) referenciado numa tabela de mesmo nome onde não conta nenhum campo como chave primária (apenas o código obviamente) pois não posso tornar nenhum campo como sendo obrigatório para preenchimento, apenas como duplicação não autorizada.

    Em testes, preenchi todos os campos, limpei todos o campos e fechei o BD. Abri a tabela e percebi que houve a inclusão de um registro em branco.

    Existe alguma forma de, uma vez que o usuário comece a cadastrar os dados e desista, resolva limpar os campos, não ser incluído um novo registro em branco?

    Digo isso pensando numa forma do usuário não ter que clicar no botão Excluir.

    Já grato pela atenção de todos!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7425
    Registrado : 05/11/2009

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  Alexandre Neves em 25/3/2019, 14:33

    Boa tarde
    Coloque código para AoFechar do form e eliminar os registos que tenham todos os campos em branco


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    mduarteteixeira
    mduarteteixeira
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 15/07/2014

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  mduarteteixeira em 25/3/2019, 15:02

    Boa tarde Alexandre.


    Seria mais ou menos assim?


    Private Sub Form_Close()

    If IsNull(campo1) And IsNull(campo2) And.... Then

    DoCmd.RunCommand (acCmdDeleteRecord)

    End If

    End Sub
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7425
    Registrado : 05/11/2009

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  Alexandre Neves em 25/3/2019, 15:20

    Veja se tem poucos ou muitos campos
    Par poucos campos, enumere-os todos semelhante ao que indicou
    Para muitos campos, adapte desta dúvida aqui resolvida https://www.maximoaccess.com/t35464-resolvidoatualizar-todos-o-campos


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    mduarteteixeira
    mduarteteixeira
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 15/07/2014

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  mduarteteixeira em 25/3/2019, 15:57

    Tentei da forma como descrevi, são 11 campos. Não funcionou. Escrevi um nome, por exemplo, e limpei o campo, cliquei no botão fechar e ainda assim gerou registro na tabela.

    Testei a forma descrita no link contudo não estou sabendo adaptar o código. Deu erro em tempo de execução.

    Tentei agora uma outra forma:

    If IsNull(Me.Nome) Or IsNull(Me.N_registros) Then

    DoCmd.RunCommand (acCmdDeleteRecord)


    End If

    Condicionando a somente existir o registro que contenha no mínimo o campo Nome ou o campo N_registros.

    Também não funcionou.

    Será que o DoCmd.RunCommand é a forma errada de tentar executar esta ação?
    Silvio
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

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

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  Silvio em 25/3/2019, 17:33

    ...


    Última edição por Silvio em 25/3/2019, 17:34, editado 1 vez(es)


    .................................................................................
    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 100%

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

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  Silvio em 25/3/2019, 17:34

    Experimente..

                    CurrentDb.Execute ("DELETE*  FROM Nome_Tabela WHERE campo1 IS NULL OR Campo2 IS NULL OR....campo 11 IS  NULL")

    Tente no evento ao Fechar do teu formulário ou mesmo no evento ao Salvar o registro atual.


    .................................................................................
    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."
    mduarteteixeira
    mduarteteixeira
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 15/07/2014

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  mduarteteixeira em 25/3/2019, 18:10

    Silvio,

    Tentei inserindo as informações desta forma:


    CurrentDb.Execute ("DELETE* FROM Acesso_DTP WHERE Foto IS NULL OR Nome IS NULL OR CPF IS NULL OR RG IS NULL OR Ultimo_acesso IS NULL OR Combinação23 IS NULL OR Motivo IS NULL OR N_registros IS NULL OR Tipo IS NULL OR Dia IS NULL OR Mes IS NULL OR Mes_extenso IS NULL")



    O Access acusa: "Parâmetros insuficientes. Eram esperados 1."

    Silvio
    Silvio
    Developer
    Developer

    Respeito às Regras 100%

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

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  Silvio em 25/3/2019, 18:54

    [Combinação23]...tente isso.  

    Sem ver o o que tens, fica meio complicado dar uma solução.

    Uma outra forma de achar o erro, é inserir um campo por vez e testando.


    .................................................................................
    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."
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7425
    Registrado : 05/11/2009

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  Alexandre Neves em 25/3/2019, 19:18

    Como se chamam os campos e tipo de dados


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    mduarteteixeira
    mduarteteixeira
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 15/07/2014

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  mduarteteixeira em 25/3/2019, 19:53

    Senhores. Amanhã vou testar a opção no Silvio quanto aos colchetes contudo irei tentar enviar o BD ou um print dos campos que seja.
    Celso Roberto
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 957
    Registrado : 01/03/2014

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  Celso Roberto em 25/3/2019, 21:17

    Olá a todos

    O parametro correto não seria assim?

    CurrentDb.Execute ( "DELETE * FROM Acesso_DTP where isnull(campo1) or isnull(campo2)......or isnull(campo11))"

    ou

    CurrentDb.Execute ( "DELETE * FROM Acesso_DTP where ((campo1) Is Null) OR ((campo2) Is Null) OR ((campo11) Is Null))


    Outra possibilidade seria deixar o campo código sem numeração automática, deixar apenas número e adicionar novo código no botão salvar ou outro a critérío:

    Tipo: Me.cod = Nz(DMax("codigo", "Acesso_DTP")) + 1



    Aguardamos

    Abraços


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    mduarteteixeira
    mduarteteixeira
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 15/07/2014

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  mduarteteixeira em 25/3/2019, 23:08

    Olá Celso. Na verdade, olhando os parâmetros que você exemplificou, percebo que o correto seria ao invés de utilizar o OR, utilizar o And, pois preciso que seja excluído somente o registro que possui todos os campos em branco. Vou testar essa sintaxe usando o And amanhã no trabalho.
    Celso Roberto
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 957
    Registrado : 01/03/2014

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  Celso Roberto em 26/3/2019, 00:06

    Olá...
    Utilizando o And, só será excluido se todos estiverem vazios.

    Aguardamos

    Abraços


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    mduarteteixeira
    mduarteteixeira
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 15/07/2014

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  mduarteteixeira em 26/3/2019, 13:26

    Senhores, bom dia.


    Eis o BD. Fiz algumas modificações conforme as instruções dos colegas acima, parou de aparecer mensagem de erro, contudo ele diz que vai deletar apenas zeros linhas (tem como não aparecer esta mensagem padrão do Access). Estou imaginando que talvez tenha que setar o campo Código, num IF por exemplo, para que ele selecione somente os campos código que atender as condições.

    Tive que limpar muitos registros e retirar configurações para conseguir enviar aqui.

    Obrigado pela atenção e paciência.
    Anexos
    [Resolvido]Excluir Registro em Branco AttachmentTesteDel.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (62 Kb) Baixado 6 vez(es)
    Celso Roberto
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 957
    Registrado : 01/03/2014

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  Celso Roberto em 26/3/2019, 14:34

    Olá...

    Não vejo os códigos nos botões, nem em fechar e nem em excluir.

    Para inibir a mensagem  e adicionar o critério do código altere para

           DoCmd.SetWarnings False 'Desabilita a mensagem padrão
           CurrentDb.Execute ( "DELETE * FROM Acesso_DTP where Codigo = " & Me.Codigo & " And isnull(campo1) or isnull(campo2)......or isnull(campo11))"
           DoCmd.SetWarnings True  'Volta a habilitar a mensagem padrão

    Aguardamos

    Abraços


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    mduarteteixeira
    mduarteteixeira
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 15/07/2014

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  mduarteteixeira em 26/3/2019, 14:45

    Celso,

    Resolvi a questão da seguinte forma:


    Private Sub Form_Close()
    Dim Del As String

    DoCmd.SetWarnings False
    Del = "DELETE * FROM Acesso_DTP WHERE IsNull(Nome) AND IsNull(N_registros)"
    DoCmd.RunSQL (Del)

    End Sub


    É realmente necessário tornar o aviso True?

    Realizei diversos testes, incluindo novos registros, limpando campos e tudo mais. Ao clicar em fechar, ele realmente fecha o form sem avisar que está excluindo nada. E realmente exclui.

    Selecionei apenas dois campos que já são condicionados a receber dados, senão o usuário não consegue liberar a entrada do munícipe.

    Acredito que tenha resolvido o problema. Você acha que há algum defeito?
    Celso Roberto
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 957
    Registrado : 01/03/2014

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  Celso Roberto em 26/3/2019, 15:12

    Olá...

    Seria melhor habilitar a mensagem sim, mesmo porque toda vez que for excluir ele desabilita

    Quanto aos campos, realmente não precisa estar todos, só os importantes para verificação.

    Abraços


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    Celso Roberto
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 957
    Registrado : 01/03/2014

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  Celso Roberto em 26/3/2019, 15:15

    olá novamente..

    Se for colocar o código como critério, tem que incluir o campo código no formulário.

    Abraços


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    mduarteteixeira
    mduarteteixeira
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 15/07/2014

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  mduarteteixeira em 26/3/2019, 15:25

    Sim. Eu inseri o campo Código de maneira invisível no formulário.

    Fico muito grato à todos!

    Abraços.

    Vou colocar como resolvido
    Celso Roberto
    Celso Roberto
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 957
    Registrado : 01/03/2014

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  Celso Roberto em 26/3/2019, 15:50

    Olá..

    cheers cheers cheers

    Ficamos felizes por ter ajudado

    O Fórum agradece o seu retorno

    Abraços e sucesso


    .................................................................................
    Quando sua dúvida estiver resolvida, Agradeça ao Fórum e de seu tópico por Resolvido



    A Única coisa que sei é que ainda nada sei, Mas em breve Saberei.....
    mduarteteixeira
    mduarteteixeira
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 99
    Registrado : 15/07/2014

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  mduarteteixeira em 26/3/2019, 16:31

    Sucesso para nós!

    Conteúdo patrocinado

    [Resolvido]Excluir Registro em Branco Empty Re: [Resolvido]Excluir Registro em Branco

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 5/12/2019, 20:44