MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Identificar novo registro ao clicar

    Compartilhe

    Jonatan
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 207
    Registrado : 03/05/2012

    [Resolvido]Identificar novo registro ao clicar

    Mensagem  Jonatan em Seg 21 Jul 2014, 4:28 pm

    Olá, ao clicar em um botão para voltar para o registro anterior, preciso que verifique se o atual é um novo registro.

    Se for vai para o anterior, senão, verifica se determinados campo estão nulos e não volta até ser preenchidos.

    gostaria de tentar com macro e vba, se possível.

    Grato


    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2287
    Registrado : 21/04/2011

    Re: [Resolvido]Identificar novo registro ao clicar

    Mensagem  Marcelo David em Seg 21 Jul 2014, 5:09 pm

    Jonatan escreveu:Olá, ao clicar em um botão para voltar para o registro anterior, preciso que verifique se o atual é um novo registro.

    Se for vai para o anterior, senão, verifica se determinados campo estão nulos e não volta até ser preenchidos.

    Qual é o registro anterior a um registro novo? O último ou o primeiro?


    .................................................................................
    Marcelo David
    [Você precisa estar registrado e conectado para ver este link.] (em construção)

    Jonatan
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 207
    Registrado : 03/05/2012

    Re: [Resolvido]Identificar novo registro ao clicar

    Mensagem  Jonatan em Seg 21 Jul 2014, 6:55 pm

    Olá, Marcelo. É o último.

    Grato

    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2287
    Registrado : 21/04/2011

    Re: [Resolvido]Identificar novo registro ao clicar

    Mensagem  Marcelo David em Seg 21 Jul 2014, 7:30 pm

    Evento ao Clicar do botão voltar

    Código:

    On Error Resume Next
    If Me.NewRecord Then
       DoCmd.RunCommand acCmdRecordsGoToLast
    Else
       If IsNull(Me!txt1) Or IsNull(Me!txt2) Then
            MsgBox "Preencha os campos corretamente", vbExclamation, "Campos sem dados"
       Else
            DoCmd.RunCommand acCmdRecordsGoToPrevious
       End If
    End If

    Em que:

    txt1 e txt2 são os campos que devem ser preenchidos (para o exemplo apenas dois campos obrigatórios, mas pode acrescentar quantos quiser usando o operador lógico Or).


    .................................................................................
    Marcelo David
    [Você precisa estar registrado e conectado para ver este link.] (em construção)

    Jonatan
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 207
    Registrado : 03/05/2012

    Re: [Resolvido]Identificar novo registro ao clicar

    Mensagem  Jonatan em Seg 21 Jul 2014, 8:08 pm

    Olá, funcionou mais ou menos.

    Estou anexando um exemplo para testes.

    Grato.
    Anexos
    Banco de dados1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (61 Kb) Baixado 8 vez(es)

    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2287
    Registrado : 21/04/2011

    Re: [Resolvido]Identificar novo registro ao clicar

    Mensagem  Marcelo David em Seg 21 Jul 2014, 8:49 pm

    Mais ou menos como? O que ainda falta para funcionar certinho?


    .................................................................................
    Marcelo David
    [Você precisa estar registrado e conectado para ver este link.] (em construção)

    Jonatan
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 207
    Registrado : 03/05/2012

    Re: [Resolvido]Identificar novo registro ao clicar

    Mensagem  Jonatan em Seg 21 Jul 2014, 9:27 pm

    Tenta inserir em um novo registro um produto qualquer. Depois tenta voltar.

    Não funciona, agora se inserir e avançar e tentar voltar, aí sim funciona e emitir a msg de aviso se for o caso.


    Esse é o problema.

    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2287
    Registrado : 21/04/2011

    Re: [Resolvido]Identificar novo registro ao clicar

    Mensagem  Marcelo David em Seg 21 Jul 2014, 9:41 pm

    O banco de dados que você me enviou não tem o código que eu forneci e sim macro.
    Ponha o código no lugar da macro e teste. Caso não funcione, poste o banco, mas com o código que pôs.


    .................................................................................
    Marcelo David
    [Você precisa estar registrado e conectado para ver este link.] (em construção)

    Jonatan
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 207
    Registrado : 03/05/2012

    Re: [Resolvido]Identificar novo registro ao clicar

    Mensagem  Jonatan em Seg 21 Jul 2014, 11:31 pm

    Marcelo, tem o código sim. O botão com o nome VOLTAR tem o código. Acabei criando outros com macro, mas o código está lá.

    Abraços

    Jonatan
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 207
    Registrado : 03/05/2012

    Re: [Resolvido]Identificar novo registro ao clicar

    Mensagem  Jonatan em Qua 23 Jul 2014, 3:34 pm

    Marcelo, consegui o que eu queria. Só mais uma dúvida, há alguma ação que posso usar para identificar novo registro com macro? VBA, tem NewRecord. E em macro, há alguma que substitua NewRecord?

    Solução:

    Com macro

    Se: ÉNulo([Código]) 'campo chave primária, numeração automática
    IrParaRegistro; Anterior

    Senão

    Se: ÉNulo([Campo1])
    CaixaDeMensagem: Campo Obrigatório.; Sim; Informação

    IrParaControle: Campo1

    Senão

    IrParaRegistro; Anterior


    Com VBA

    Adaptei o código que você me passou:

    No lugar de If Me.NewRecord Then, ficou
    If Isnull(Me.Código) Then

    Me serviu, não sei se é a maneira adequada de se fazer, enfim...  Corrijam se estiver errado, mas me parece que o evento OnClick não é adequado para usar NewRecord.

    Abraços

    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2287
    Registrado : 21/04/2011

    Re: [Resolvido]Identificar novo registro ao clicar

    Mensagem  Marcelo David em Qua 23 Jul 2014, 7:28 pm

    Abri o tópico novamente.

    Veja bem, NewRecord pode ser usado de acordo com a necessidade.

    Se você precisa saber se é um novo registro ao clicar no botão voltar,
    então é nesse botão que é "apropriado" usar o comando.

    Não uso macro e aconselho a evita-las, pois no ambiente
    RumTime, o Access não interpreta os tratamentos de erros
    e seu aplicativo fecha assim que encontrar uma exceção.

    Se no VBA está atendendo, porque usar macros?

    Baixei novamente seu banco e realmente vi que o código está lá e está funcionando
    como pediu na sua mensagem 1!

    Você falou que o código funcionou mais ou menos, mas não disse o que ainda faltava...

    Abaixo vou postar o código e comenta-lo para ver se estar como pediu na mensagem 1.

    Código
    Private Sub Comando22_Click() 'Ao clicar no botão voltar
    On Error Resume Next

    If Me.NewRecord Then    'Verifico se é um novo registro...
            DoCmd.RunCommand acCmdRecordsGoToLast    'Caso seja um novo registro, então vou para o último registro sem fazer nenhuma validação como você mesmo pediu
    Else    'Se não for um novo registro...
            If IsNull(Me!Produto) Or IsNull(Me!ValorUnitário) Then 'Como não é um novo registro, verifique se os campos Produto e ValorUntátio estão preenchidos
                    MsgBox "Preencha os campos corretamente", vbExclamation, "Campos sem dados"   'Informo que há campos que não foram preenchidos
            Else   'Caso os campos estejam preenchidos, então...
                DoCmd.RunCommand acCmdRecordsGoToPrevious   'Volto um registro normalmente
            End If
    End If

    End Sub

    Foi isso que você pediu. Agora se há mais algo que não falou, basta falar que veremos como interpretar isso via VBA...  Very Happy


    .................................................................................
    Marcelo David
    [Você precisa estar registrado e conectado para ver este link.] (em construção)

    Jonatan
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 207
    Registrado : 03/05/2012

    Re: [Resolvido]Identificar novo registro ao clicar

    Mensagem  Jonatan em Qui 24 Jul 2014, 4:33 am

    Olá, Marcelo. Veja bem, teste assim:

    1. Em um novo registro insira algo no campo produto. 'Feito isso um novo registro é criado
    2. Deixe o outro campo obrigatório em em branco, depois clique em voltar. 'Note que não foi feita a verificação nesse momento, nada acontece, na verdade
    3. Agora saia desse registro, volte novamente, depois clique em Voltar. Aí sim ele verifica.


    Esse é o problema do qual falava.

    Jonatan
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 207
    Registrado : 03/05/2012

    Re: [Resolvido]Identificar novo registro ao clicar

    Mensagem  Jonatan em Qui 24 Jul 2014, 4:39 am

    Agora sim! No mesmo evento Ao clicar, antes do código, coloquei Me.Refresh e funcionou. Acho que faltava atualizar esse registro antes de verificar os campos.

    Mas só por curiosidade, Marcelo, há como identificar um novo registro com macro?

    Abraços


    Marcelo David
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2287
    Registrado : 21/04/2011

    Re: [Resolvido]Identificar novo registro ao clicar

    Mensagem  Marcelo David em Qui 24 Jul 2014, 1:45 pm

    Sim, é possível saber se é um novo registro pelas
    macros, veja:

    Se [Formulário].[NewRecord] Então
       CaixaMensagem
       Mensagem   Esse é um novo registro
       Tipo Informação
       Título Novo registro?

    Senão
       CaixaMensagem
       Mensagem   Esse não é um novo registro
       Tipo Aviso!
       Título Novo registro?

    *Essa macro funciona no Access 2010, não tenho certeza em outras versões.


    Última edição por Marcelo David em Qui 24 Jul 2014, 1:47 pm, editado 1 vez(es) (Razão : *)


    .................................................................................
    Marcelo David
    [Você precisa estar registrado e conectado para ver este link.] (em construção)

    Jonatan
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 207
    Registrado : 03/05/2012

    Re: [Resolvido]Identificar novo registro ao clicar

    Mensagem  Jonatan em Qui 24 Jul 2014, 3:07 pm

    Ok, muito obrigado.

      Data/hora atual: Qui 08 Dez 2016, 1:02 am