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

    Impedir inserir novo registro através do botão "Próximo"

    Compartilhe

    AMarcos
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 120
    Registrado : 26/07/2016

    Impedir inserir novo registro através do botão "Próximo"

    Mensagem  AMarcos em 3/12/2018, 21:18

    Olá amigos mestres,

    Estou com um formulário que todas as vezes quando passo do último registro, é inserido automaticamente um novo registro em branco na tabela do BD.

    Acontece que isso me causa problema nos relatórios one contém somatório dos registros.

    Estou tentando um código VBA onde me avisa quando estou navegando de registro a registro e chego no último, mas mesmo assim não deixa de inserir um ou outros registros.

    Eu preciso que ao chegar no último registro na navegação de registro a registro, botão "Próximo", não insira mais nenhum outro registro em branco na tabela do BD, a não ser quando realmente precisar e isso deverá ser feito pelo botão "Novo".

    Estou postando um extrat o do BD para facilitar o entendimento e podrem modificar no próprio BD.

    Um abraço e fico no aguardo de mais essa ajuda.


    AMarcos
    Anexos
    Novo_Registro.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (121 Kb) Baixado 12 vez(es)
    avatar
    Fernando Bueno
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2006
    Registrado : 13/04/2012

    Re: Impedir inserir novo registro através do botão "Próximo"

    Mensagem  Fernando Bueno em 4/12/2018, 08:56

    Bom dia;

    Em modo design do formulário clique em Propriedades / outra / ciclo / registro atual

    Dessa forma você impede que ao sair do ultimo campo mude para um novo registro.



    .................................................................................
    Um abraço
    Fernando Bueno


    O aumento do conhecimento é como uma esfera dilatando-se no espaço
    quanto maior a nossa compreensão,
    maior o nosso contacto com o desconhecido
    [Você precisa estar registrado e conectado para ver esta imagem.]

    AMarcos
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 120
    Registrado : 26/07/2016

    Re: Impedir inserir novo registro através do botão "Próximo"

    Mensagem  AMarcos em 4/12/2018, 13:13

    Amigo Fernando, td bem?

    Infelizmente não deu certo. Eu já havia feito isso. Mas tentei de novo, sem sucesso.

    O problema acontece sempre que eu clico no botão de navegação "próximo" do Formulário "Cadastro de Viaturas". Com o código que coloquei ele até avisa que é o último registro e não deixa aparecer um novo formulário, mas lá na tabela "Viaturas" e nos Relatórios "FrmProntoVtr" e Mapa_de_Disponibilidade" gera novo registro em branco. Causa um transtorno de ficar algumas linhas em branco e no Mapa_de_Disponibilidade dar erro no cálculo do rodapé.

    Será que há um outro meio ou alguma linha de código em que posso acrescentar para inibir tal ação???

    Att,


    AMarcos
    avatar
    vieirasoft
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7302
    Registrado : 11/05/2010

    Re: Impedir inserir novo registro através do botão "Próximo"

    Mensagem  vieirasoft em 4/12/2018, 15:09

    Boa tarde. para além da sugestão que o colega lhe deu, use um botão de comando exclusivamente para dar início a um novo registo assim:

    DoCmd.OpenForm "meu formulário", , , , acFormAdd

    Coloque o ciclo para "Registo Actual"

    Desta forma não deve ficar registada na tabela nenhum registo em branco. Teste, por favor.

    AMarcos
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 120
    Registrado : 26/07/2016

    Re: Impedir inserir novo registro através do botão "Próximo"

    Mensagem  AMarcos em 6/12/2018, 15:41

    Olá Mestre Vieira!

    Já existe no Formulário um botão para criar um novo registro, botão "Inserir Novo" (macro inserida), o problema está no botão de navegação "Próximo Registro", pq toda vez em que ele é clicado cria um novo registro em branco na Tabela "Viaturas" e nos Relatório que do formulário derivam: "Mapa_de_Disponibilidade" e "FrmProntoVtr"

    Tudo está exemplificado conforme o BD em anexo.

    E eu só não testei por que não entendi porque colocar um comando de Abrir Formulário (Docmd.OpenForm) para resolver registro em tabela. Vc poderia me dar essa luz mestre?

    Att,


    AMarcos
    avatar
    Fernando Bueno
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2006
    Registrado : 13/04/2012

    Re: Impedir inserir novo registro através do botão "Próximo"

    Mensagem  Fernando Bueno em 6/12/2018, 21:23

    Olá boa noite;

    Tente esse comando no evento Ao Clicar do botão próximo registro.

    Código:
    On Error GoTo Err_btn_Proximo_Click

        DoCmd.GoToRecord , , acNext

    Exit_btn_Proximo_Click:
        Exit Sub

    Err_btn_Proximo_Click:
        MsgBox "Nâo existem mais registros para avançar!", vbInformation, "Aviso"
        Resume Exit_btn_Proximo_Click


    .................................................................................
    Um abraço
    Fernando Bueno


    O aumento do conhecimento é como uma esfera dilatando-se no espaço
    quanto maior a nossa compreensão,
    maior o nosso contacto com o desconhecido
    [Você precisa estar registrado e conectado para ver esta imagem.]

    AMarcos
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 120
    Registrado : 26/07/2016

    Re: Impedir inserir novo registro através do botão "Próximo"

    Mensagem  AMarcos em 7/12/2018, 22:52

    Meus amigos mestres, nada até o momento que foi sugerido está resolvendo a situação. Eu observo que os registros em branco são inseridos sem código e por isso ficam localizados na tabela e nos relatórios antes de todos os outros.

    Ao realizar a sugestão de códigos e procedimentos, os amigos testaram no BD que postei em anexo ao pedido de ajuda? Porque se estiver dando certo, algo eu posso estar fazendo de errado para não estar conseguindo o êxito esperado.
    Por isso peço que postem de volta o exemplo funcionando além de informar o que foi feito, assim eu posso verificar o que estou deixando de fazer. Mas posso afirmar que estou seguindo a todas orientações desde o início.


    Eu estou utilizando os seguintes códigos no botão "Próximo":

    No evento ao clicar:

    Private Sub btn_Proximo_Click()
    'Vai para o próximo registro
    On Error Resume Next
    DoCmd.GoToRecord , , acNext
    End Sub

    No evento ao entrar:

    Private Sub btn_Proximo_Enter()
    If IsNull(Me.txt_Cod) Or Me.txt_Cod = "" Then
    MsgBox ("Você está no último registro."), vbMsgBoxRight, "PCVOM_50BIS"
    DoCmd.GoToRecord , , acPrevious
    Exit Sub
    End If
    End Sub

    Esses mesmos códigos estão sendo usados no Formulário "Cadastro de Motoristas" com sucesso. Nenhum registro é criado na tabela "Motoristas" e também no Relatório "Relação de Motoristas", além de me avisar que estou no último registro, da forma que deveria acontecer no Formulário "Cadastro de Viaturas" e não acontece.

    Qual será o mistério??? O que será que está faltando???


    AMarcos
    avatar
    Fernando Bueno
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2006
    Registrado : 13/04/2012

    Re: Impedir inserir novo registro através do botão "Próximo"

    Mensagem  Fernando Bueno em 8/12/2018, 09:13

    Bom dia Antonio,

    Dessa forma resolve seu problema.

    Em propriedades do formuário / Dados / Permitir Adições = Não

    Caso queira exibir uma mensagem no evento ao clicar do botão Próximo:
    Código:
    On Error GoTo Err_btn_Proximo_Click

        DoCmd.GoToRecord , , acNext

    Exit_btn_Proximo_Click:
        Exit Sub

    Err_btn_Proximo_Click:
        MsgBox "Nâo existem mais registros para avançar!", vbInformation, "Aviso"
        Resume Exit_btn_Proximo_Click

    Aguardamos.
    Anexos
    Novo_Registro_II.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (163 Kb) Baixado 3 vez(es)


    .................................................................................
    Um abraço
    Fernando Bueno


    O aumento do conhecimento é como uma esfera dilatando-se no espaço
    quanto maior a nossa compreensão,
    maior o nosso contacto com o desconhecido
    [Você precisa estar registrado e conectado para ver esta imagem.]

    Buscador
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 254
    Registrado : 26/02/2011

    Re: Impedir inserir novo registro através do botão "Próximo"

    Mensagem  Buscador em 8/12/2018, 22:14

    Veja se é isto.
    Anexos
    Novo_Registro.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (132 Kb) Baixado 2 vez(es)

    AMarcos
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 120
    Registrado : 26/07/2016

    Re: Impedir inserir novo registro através do botão "Próximo"

    Mensagem  AMarcos em 8/12/2018, 23:06

    Fernando meu amigo, realmente funcionou, mas eu já havia feito o procedimento de colocar "NÃO" no campo "Adição" em "Folha de Propriedades". Só que verificando que também desabilita o botão "Novo" impedindo de abrir outro registro quando for necessário, eu resolvi não adotar esse procedimento.

    Será que existe um código para deixar habilitado o botão "Novo" estando o campo "Adição" em "Folha de Propriedades" em NÃO?


    AMarcos
    avatar
    Fernando Bueno
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2006
    Registrado : 13/04/2012

    Re: Impedir inserir novo registro através do botão "Próximo"

    Mensagem  Fernando Bueno em 9/12/2018, 03:43

    Boa noite;

    Teste para vermos se está como pretende.

    Aguardamos.
    Anexos
    Novo_Registro_III.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (149 Kb) Baixado 7 vez(es)


    .................................................................................
    Um abraço
    Fernando Bueno


    O aumento do conhecimento é como uma esfera dilatando-se no espaço
    quanto maior a nossa compreensão,
    maior o nosso contacto com o desconhecido
    [Você precisa estar registrado e conectado para ver esta imagem.]

    AMarcos
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 120
    Registrado : 26/07/2016

    Re: Impedir inserir novo registro através do botão "Próximo"

    Mensagem  AMarcos em 9/12/2018, 21:21

    Olá mestres!!!

    Primeiro quero agradecer a disponibilidade do amigo Buscador pela disponibilidade, mas infelizmente o código colocado como solução ainda continua dando o mesmo erro de gerar registro novo em branco.

    E ao amigo Fernando Bueno gostaria de saber onde foi efetuado a alteração pois verifiquei tudo e não consegui enxergar. Se houve alteração que não consegui ver mesmo assim ainda não está resolvido o impasse pois se aparecer nova viatura para ser incluída, o operador não terá independência para incluí-la, a não ser por uma intervenção minha para colocar SIM no "permitir adição" dentro de "Outra" em Folhas de Propriedades.

    Preciso impedir a criação de novo registro em branco pelo botão "Próximo" mas deixar possível a criação de um novo registro pelo botão "Novo" quando realmente for necessário incluir uma nova viatura.

    AMarcos
    avatar
    Fernando Bueno
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2006
    Registrado : 13/04/2012

    Re: Impedir inserir novo registro através do botão "Próximo"

    Mensagem  Fernando Bueno em 10/12/2018, 01:57

    Boa noite;

    Infelizmente ainda não consegui enxergar o erro, utilizo sempre o código da mensagem 8

    e atende porém em seu banco o mesmo não esta surtindo efeito.

    Assim que possivel dou uma analisada melhor ok, ou quem sabe algum colega possa ver

    o que não estamos encontrando.


    .................................................................................
    Um abraço
    Fernando Bueno


    O aumento do conhecimento é como uma esfera dilatando-se no espaço
    quanto maior a nossa compreensão,
    maior o nosso contacto com o desconhecido
    [Você precisa estar registrado e conectado para ver esta imagem.]
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    Re: Impedir inserir novo registro através do botão "Próximo"

    Mensagem  Assis em 10/12/2018, 09:18

    Bom dia

    Teste e retorne.

    Atenção ao novo comando do botão "Anular", conforme estava não anulava nada só limpava os campos mas o registro ficava.
    Anexos
    Assis Novo_Registro_III.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (198 Kb) Baixado 5 vez(es)


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

    Respeito às Regras 100%

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

    Re: Impedir inserir novo registro através do botão "Próximo"

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

    A Marcos

    Resolveu ?


    .................................................................................
    *** Só sei que nada sei ***

      Data/hora atual: 18/12/2018, 22:12