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


    Cancelar registro antes de completar

    OLDRIVG
    OLDRIVG
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 353
    Registrado : 20/07/2010

    Cancelar registro antes de completar Empty Cancelar registro antes de completar

    Mensagem  OLDRIVG em 12/12/2018, 15:52

    Prezados, boa tarde.
    Mais uma vez precisando de ajuda em um formulário.

    No formulário existem campos que devem ser preenchido para prosseguir com o preenchimento dos demais campos. Ocorre que as vezes o registro não vai mais ser salvo e, aí, surge o problema. Caso o cursor/foco esteja em um desses campos cujo preenchimento seja obrigatório, não consegue cancelar o registro e nem fechar o sistema sem preencher o respectivo campo. Caso seja atendida o requerido pelo campo, aí se consegue fechar o sistema, mas se cancelar não consegue fechar.

    O código que pede o preenchimento obrigatório do campo é o a segui:

    If isnull (Me.campo) = True then
    MSGBOX ("xxxxxxxx")
    me.campo.setfocus
    Else
    End if


    Prezados, existe alguma forma de cancelar e/ou fechar o registro/sistema sem que seja necessário preencher o campo que requer o valor?Caso alguém tenha alguma sugestão, será bem vinda.

    Agradeço
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Cancelar registro antes de completar Empty Re: Cancelar registro antes de completar

    Mensagem  Alexandre Neves em 12/12/2018, 17:20

    Boa tarde
    Já experimentou Me.Undo?


    .................................................................................
    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
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 353
    Registrado : 20/07/2010

    Cancelar registro antes de completar Empty Re: Cancelar registro antes de completar

    Mensagem  OLDRIVG em 12/12/2018, 17:24

    Boa tarde.

    Sim. Está no evento Ao clicar do botão "Cancelar".
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3846
    Registrado : 06/11/2009

    Cancelar registro antes de completar Empty Re: Cancelar registro antes de completar

    Mensagem  Assis em 12/12/2018, 18:00



    .................................................................................
    *** Só sei que nada sei ***
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 353
    Registrado : 20/07/2010

    Cancelar registro antes de completar Empty Re: Cancelar registro antes de completar

    Mensagem  OLDRIVG em 13/12/2018, 10:28

    Bom dia, Assis.

    Obrigado pela a atenção e prestabilidade.

    Vi o exemplo disponibilizado. Entretanto, não é isto que preciso. O exemplo faz a verificação se há campos de preenchimento obrigatório sem dados.

    Preciso que ao clicar no botão Cancelar ou Fechar do formulário, este fecha ou cancela o registro que está sendo feito, independente de ter campos cujo preenchimento seja obrigatório com dados.
    O que está ocorrendo no sistema que estou criando é que, ao clicar no botão Cancelar ou Fechar, a ação não ocorre se houver campos cujo preenchimento seja obrigatório e não esteja preenchido, permanecendo ali o foco.

    Agradeço-lhe mais uma vez a atenção,  aguardando alguma outra sugestão.
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3846
    Registrado : 06/11/2009

    Cancelar registro antes de completar Empty Re: Cancelar registro antes de completar

    Mensagem  Assis em 13/12/2018, 10:55

    Bom dia OLDRI

    Teste, sair mesmo sem dados registados….
    Anexos
    Cancelar registro antes de completar AttachmentVerificacao de campos nulos.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (64 Kb) Baixado 10 vez(es)


    .................................................................................
    *** Só sei que nada sei ***
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 353
    Registrado : 20/07/2010

    Cancelar registro antes de completar Empty Re: Cancelar registro antes de completar

    Mensagem  OLDRIVG em 13/12/2018, 12:01

    Bom dia, Assis.

    Obrigado mais uma vez.

    Não funcionou no formulário do sistema que estou a montar ou não estou sabendo incrementar.
    Os campos cujos preenchimentos são obrigatórios, caso estejam sem dados o usuário não prossegue se não preencher, pois existe a rotina Me.campo.setfocus. Se retirar esta rotina a sua sugestão funciona perfeitamente.

    A propósito, caso não haja dados nos campos obrigatórios, além do usuário não conseguir prosseguir no preenchimento dos demais campos, não é possível nem mesmo retroceder ou avançar nos registros. Caso retire a rotina Me.campo.setfocus, só é emitido um aviso de preenchimento obrigatório conforme o evento e a navegação pelos registros, o cancelamento ou fechamento do formulário ocorrem normalmente.

    Se houver alguma outra forma que obrigue o preenchimento do campo porém sem impedir a navegação, o cancelamento ou fechamento do formulário, ficarei grato pela sugestão. Está obrigatoriedade de preenchimento deveria ocorrer somente quando do salvamento do registro.

    No exemplo que postou, como se faz para determinar quais campos a verificar o preenchimento através do código. Implementei o código no evento Ao Sair de um campo e pelo que pude perceber, a verificação é genérica, ou seja, em todos os campos. Fiz uns testes e mesmo tendo campos sem dados no registro retornou MsgBox de que todos os campos estavam preenchidos. E não estavam.
    Agradecido
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3846
    Registrado : 06/11/2009

    Cancelar registro antes de completar Empty Re: Cancelar registro antes de completar

    Mensagem  Assis em 13/12/2018, 23:44

    Boa noite OLDRIVG

    Veja na imagem como são determinados os campos obrigatórios .

    Na aba Outros coloca, em Marca 1 (Como na Imagem).

    Cancelar registro antes de completar Sem_tz39


    .................................................................................
    *** Só sei que nada sei ***
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3846
    Registrado : 06/11/2009

    Cancelar registro antes de completar Empty Re: Cancelar registro antes de completar

    Mensagem  Assis em 14/12/2018, 09:48

    Bom dia OLDRIVG

    Continua com duvidas ?

    Quer poste só o seu formulário em questão, e a tabela que o alimenta, para receber ajuda ?


    .................................................................................
    *** Só sei que nada sei ***
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 353
    Registrado : 20/07/2010

    Cancelar registro antes de completar Empty Re: Cancelar registro antes de completar

    Mensagem  OLDRIVG em 14/12/2018, 11:56

    Olá Assis, bom dia.

    Quanto ao seu exemplo, nenhuma dúvida. Funcionou a contento depois da sua instrução em digitar 1 no evento Marca. Como escrevi anteriormente, havia implementado o código no evento Ao Sair do último campo de uma aba de Controle Guia e funcionou após seguir sua instrução.

    A título de "comodidade", há como implementar algum código que, após clicar no OK do aviso de campo(s) em branco, mandaria o foco para o campo em branco (caso de um campo) ou para o primeiro campo (no caso de vários campos)?

    Quanto a adaptar o uso das rotinas do exemplo postado à minha dificuldade, motivo do tópico, creio não ser possível. Como já escrevi, a minha dificuldade está em cancelar ou fechar o formulário sem ter que preencher campos que exijam dados. Acredito que a única forma será eu retirar a rotina Me.Campo.SetFocus do campo.

    Estou anexando cópia do BD para você, caso possa, constatar o que acontece com o código Me.Campo.SetFocus implementado. Após abrir, clique no botão "Fechar Sistema" que poderá verificar o que ocorre. Ou então, Faça uma seleção no campo Tipo de Documento e depois entre no campo Data do Documento e tente fechar ou cancelar sem digitar a data e constate que não cancela ou fecha sem preencher o campo.


    Mas agradeço-lhe pela a atenção, empenho e prestabilidade.

    Obrigado
    Anexos
    Cancelar registro antes de completar AttachmentPROTOCOLO - PRO(3).zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (356 Kb) Baixado 3 vez(es)
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3846
    Registrado : 06/11/2009

    Cancelar registro antes de completar Empty Re: Cancelar registro antes de completar

    Mensagem  Assis em 14/12/2018, 22:58

    Boa noite

    Teste  o botão "Fechar Sistema"
    Anexos
    Cancelar registro antes de completar AttachmentPROTOCOLO - PRO(3)_Assis.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (229 Kb) Baixado 11 vez(es)


    .................................................................................
    *** Só sei que nada sei ***
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 353
    Registrado : 20/07/2010

    Cancelar registro antes de completar Empty Re: Cancelar registro antes de completar

    Mensagem  OLDRIVG em 17/12/2018, 09:20

    Prezado Assis, bom dia.

    Mais uma vez agradeço-lhe pela a atenção.

    Entretanto, retirando o código Me.TipoDocumento.SetFocus do evento Ao Carregar do formulário, funciona, como eu já havia escrito na mensagem 10 (Acredito que a única forma será eu retirar a rotina Me.Campo.SetFocus do campo.). O que eu pretendia era que, independente de ter dados ou não no campo "TipoDocumento" ou no campo "DataDocumento", ocorresse o cancelamento do registro ou o fechamento do formulário quando clicasse nos respectivos botões.

    Criei um campo não visível "TxtInicial" e incrementei no evento "Ao Carregar" do formulário com a rotina Me.TxtInicial.SetFocus. Desta forma, seria possível cancelar o registro ou fechar o formulário sem problemas, caso o usuário desistisse de efetuar algum registro no aplicativo.

    Para tanto, teria que implementar uma rotina que, quando o usuário apertasse uma tecla(de preferência ENTER) após o formulário aberto, o foco, que ao carregar o formulário estaria no campo "TxtInicial", passasse para o campo "TipoDocumento". Tentei os códigos a seguir:

    No evento Ao Carregar do formulário

    Me.Form.KeyPreview = True
    Me.TxtInicial.SetFocus

    No evento Visualizar Teclas do formulário = Sim

    No evento Ao Apertar Tecla do campo "TxtInicial"

    If KeyCode = 13 Then
      Me.TipoDocumento.SetFocus
    End If


    mas os código não funcionaram. Saberia me informar se teria como realizar esta rotina?
    Agradecido
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3846
    Registrado : 06/11/2009

    Cancelar registro antes de completar Empty Re: Cancelar registro antes de completar

    Mensagem  Assis em 17/12/2018, 10:22

    Bom dia

    Mesmo com um campo oculto "TxtInicial" a receber o foco primeiro, consegue fechar o formulário sem o aviso, mas vai ficar igual sempre que entre no campo TipoDocumento.

    Implemente o exemplo da verificação dos campos vazios.


    .................................................................................
    *** Só sei que nada sei ***
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 353
    Registrado : 20/07/2010

    Cancelar registro antes de completar Empty Re: Cancelar registro antes de completar

    Mensagem  OLDRIVG em 17/12/2018, 10:51

    Bom dia, Assis.

    Concordo com você quanto ao entrar no campo "TipoDocumento".
    Porém, ao carregar o formulário e o foco for para um campo que não seja obrigatório (TxtInicial) e oculto, pode-se colocar no evento Ao Entrar uma MsgBox do tipo VbYesNo, na qual o usuário é avisado quanto as obrigatoriedades para o prosseguimento do registro. Caso o usuário clique em Sim, o usuário é orientado a teclar "ENTER", e aí o foco passa para o campo "TipoDocumento" tornando obrigatória a continuidade do registro; caso clique em Não, o usuário é informado a escolher a opção de movimentar ou consultar um documento ou ainda fechar o sistema sem que seja obrigado a inserir dados no campo "TipoDocumento".

    Mas para isto, teria que haver uma forma de implementar um código que fizesse a rotina para usar a tecla "ENTER" conforme escrevi na mensagem anterior.

    Caso você tenha alguma sugestão para fazer a implementação no campo "TxtInicial" para uso da tecla "ENTER", fico-lhe grato.
    Agradecido

    Conteúdo patrocinado

    Cancelar registro antes de completar Empty Re: Cancelar registro antes de completar

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 20/6/2019, 12:41