MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


5 participantes

    [Resolvido]Alterar apenas o ano e validar com 5 digitos

    OLDRIVG
    OLDRIVG
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  OLDRIVG 13/5/2019, 18:47

    Prezados, boa tarde.

    Existe alguma maneira no access de alterar, automaticamente, somente o ano em um campo no formulário na virada de 31/12 para 01/01?

    Sei que tem uma função que reinicia uma sequencia de numeração ao final do ano reiniciando também o ano, mas o que eu preciso é reiniciar somente o ano.
    Desde já agradeço.
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  good guy 13/5/2019, 23:18

    Olá amigo,

    Teste esta função. Estude a lógica contida na função e faça alguns testes alterando o dia 31 por um dia anterior ao dia de hoje e o mês 12 pelo mês atual:

    Código:
    Public Function AlteraAno()
    #Código de Eduardo Machado (Good Guy) - Ano 2019
    'Adquira meus livros TÉCNICAS ESPECIAIS DE ACCESS VBA (Ed. Ciência Moderna) e DOMINE O ACCESS VBA (Ed. Livrorama)
    'Mais informações aqui mesmo no fórum MáximoAccess

    On Error Resume Next
    Dim strDataEsp As String
    Dim intDataAno As Integer
    Dim xAno As Long

    intDataAno = Month(Date)
    xAno = Year(Date)
    strDataEsp = CDate(Format("31 / 12 /" & xAno, "dd/mm/yyyy"))
      
      If intDataAno = Month(strDataEsp) Then
        If Date > strDataEsp Then  'Se a data atual for maior que a data delimitada acima será acrescentado 1 à variável 'xAno'.
        xAno = xAno + 1
        Me.txtAno = xAno      'txtAno é o nome da caixa de texto do Ano que será alterado, isto é, acrescentado 1 ao ano.
        Else
        MsgBox "Hoje ainda não é o fim de ano !!!", vbCritical, "Data Específica"
        End If
      Else
      MsgBox "Mes atual é diferente de dezembro !!!", vbInformation, "Data Específica"
      End If
      
    End Function
    Anexos
    [Resolvido]Alterar apenas o ano e validar com 5 digitos AttachmentAlteraAno.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (43 Kb) Baixado 10 vez(es)
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  OLDRIVG 14/5/2019, 15:44

    Prezado Good Guy, bom dia.

    Agradeço-lhe pela a atenção.

    Entretanto, a sua sugestão não funcionou para mim. Eu testei alterando o ano no calendário do Windows e o ano permaneceu o mesmo no seu exemplo (2019).

    Vou explanar mais detalhado o que estou precisando:

    em um formulário existe o  campo txtNumeroSequencial e a seguir um campo txtAno. No campo txtNumeroSequencial é digitado um número pelo usuário do BD e o campo txtAno não é digitado nada, pois o valor padrão do campo é o ano, no caso 2019. Então, a sequencia ficaria da seguinte forma: XXXXX/2019, onde "X" é numero da sequencia retirado de uma listagem.

    A minha pretensão, caso seja possível, seria criar uma rotina no campo txtAno para que, ao chegar no final do ano (31/12/2019) e ao virar "zero hora" o ano fosse alterado automaticamente para 2020, sem necessidade de ir até as propriedades do campo e alterasse lá o valor padrão.

    Não consegui assimilar no código do seu exemplo esta possibilidade. Fiz apenas o teste alterando o ano no calendário do Windows, como já citado.

    Quanto ao teste sugerido por você em seu exemplo, onde são digitadas as alterações de mês e dia como sugeridas?

    Agradecido
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  good guy 14/5/2019, 15:48

    Olá amigo,

    Talvez seja apenas uma equívoco na interpretação e aplicação do código. Para resolvermos o impasse, passe o aplicativo ou um exemplo para vermos o que se pode fazer. Para testes quis dizer:

    strDataEsp = CDate(Format("13 / 05 /" & xAno, "dd/mm/yyyy"))
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  OLDRIVG 14/5/2019, 17:19

    Olá Prezado,

    em anexo uma aplicação simples com somente os campos citados. A mesma contém um módulo (ModNumercaoAno), criado pelo mestre JPaulo aqui do Fórum, o qual tentei adaptar a minha necessidade mas não consegui. Este módulo reinicia a contagem da sequência numérica como também o ano. E eu preciso que reinicie somente o ano.

    Caso possa dar uma olhada no módulo do mestre JPaulo, agradeço.

    Fiz os testes no seu exemplo como instruiu, mas quando vira o ano não ocorre a alteração para o ano seguinte.

    Agradecido
    Anexos
    [Resolvido]Alterar apenas o ano e validar com 5 digitos AttachmentAlteraAno NEW.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (25 Kb) Baixado 10 vez(es)
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  good guy 14/5/2019, 17:45

    Ok. Observe onde pode estar havendo a falha no código.

    xAno = Year(Date)


    Então o que acontece é que o ano permanecia o mesmo na hora da mudança, por esta razão não satisfazia esta condição:

    If Date > strDataEsp Then

    Além do mais a data atual (01/01/2020) jamais ficaria maior que a data da variável strDataEsp(31/12/2020). Por isso, vamos trabalhar em uma solução:

    Se 01/01/2020 for maior que 31/12/2019 no código:

    If Date > strDataEsp Then

    Com certeza, nesse caso funfará !!! O Código modificado:

    Código:
    Public Function AlteraAno()
    #Código de Eduardo Machado (Good Guy) - Ano 2019
    'Adquira meus livros TÉCNICAS ESPECIAIS DE ACCESS VBA (Ed. Ciência Moderna) e DOMINE O ACCESS VBA (Ed. Livrorama)
    'Mais informações aqui mesmo no fórum MáximoAccess

    On Error Resume Next
    Dim strDataEsp As String
    Dim intDataAno As Integer
    Dim xAno As Long

    intDataAno = Month("31 / 12 / 2019")    'Ou Month(Date)

    xAno = Year(Date)
    strDataEsp = CDate(Format("31 / 12 /" & xAno, "dd/mm/yyyy"))

    If intDataAno = Month(strDataEsp) Then
        
      
          If #12/31/2019# = strDataEsp Then    'Ou  If Date = strDataEsp Then

           strDataEsp = CDate(Format("31 / 12 /" & xAno - 1, "dd/mm/yyyy"))
          
           If #1/1/2020# > strDataEsp Then    ' Ou If Date > strDataEsp Then  Se a data atual for maior que a data delimitada acima será acrescentado 1 à variável 'xAno'.
      
           xAno = xAno + 1
          
           Me.txtAno = xAno      'txtAno é o nome da caixa de texto do Ano que será alterado, isto é, acrescentado 1 ao ano.
           End If
        Else
        Exit Function
        End If
    Else
    Exit Function
    End If

      
    End Function

    Ou a mesma função usando um argumento para a função:

    Código:
    Public Function AlteraAno(xAno As Long)
    '#Código de Eduardo Machado (Good Guy) - Ano 2019
    'Adquira meus livros TÉCNICAS ESPECIAIS DE ACCESS VBA (Ed. Ciência Moderna) e DOMINE O ACCESS VBA (Ed. Livrorama)
    'Mais informações aqui mesmo no fórum MáximoAccess

    On Error Resume Next
    Dim strDataEsp As String
    Dim intDataAno As Integer

    intDataAno = Month("31 / 12 / 2019")    'Ou Month(Date)

    xAno = Year(Date)
    strDataEsp = CDate(Format("31 / 12 /" & xAno, "dd/mm/yyyy"))

    If intDataAno = Month(strDataEsp) Then
        
      
          If #12/31/2019# = strDataEsp Then    'Ou  If Date = strDataEsp Then

           strDataEsp = CDate(Format("31 / 12 /" & xAno - 1, "dd/mm/yyyy"))
          
           If #1/1/2020# > strDataEsp Then    ' Ou If Date > strDataEsp Then  Se a data atual for maior que a data delimitada acima será acrescentado 1 à variável 'xAno'.
      
           xAno = Val(Me.Ano)
           DoCmd.RunCommand acCmdRecordsGoToLast
           Me.Ano = xAno + 1      'Ano é o nome da caixa de texto do Ano que será alterado, isto é, acrescentado 1 ao ano.
          
           End If
        Else
        Exit Function
        End If
    Else
    Exit Function
    End If

      
    End Function
    Anexos
    [Resolvido]Alterar apenas o ano e validar com 5 digitos AttachmentAlteraAno.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (45 Kb) Baixado 6 vez(es)


    Última edição por good guy em 14/5/2019, 21:34, editado 1 vez(es)
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  good guy 14/5/2019, 21:31

    Olá amigo,

    Quanto ao seu novo arquivo, fiz uma adaptação. Só não entendi direito quanto à numeração sequencial.
    Anexos
    [Resolvido]Alterar apenas o ano e validar com 5 digitos AttachmentAlteraAno NEW.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (50 Kb) Baixado 14 vez(es)
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  OLDRIVG 15/5/2019, 10:59

    Prezado, bom dia.

    Infelizmente não funcionou conforme a minha pretensão. Fiz testes com os códigos enviados,  alterando a data do sistema (como já citado), e não alterou o ano no campo respectivo.

    Quanto ao exemplo que enviei e você alterou, para mudar o ano tem que alterar o ano no código. Não muda alterando a data do sistema.

    Quanto a numeração sequencial que você não entendeu, este dado é digitado pelo usuário. No exemplo que enviei eu digitei 001234571/2019, como poderia ter sido digitado 999999999/2019 ou 276859735467788/2019, ou , ainda, 1/2019.

    Agradeço-lhe efusivamente pelo empenho nas sugestões, mas vou desistir de implementar esta funcionalidade. Vou deixar que o usuário digite o ano sempre que for realizar um registro.

    Agradecido
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Alterar apenas o ano

    Mensagem  good guy 15/5/2019, 15:59

    Amigo old,

    Se você for desistir quando os problemas surgirem, maiores problemas terá pela frente de difícil solução. Tudo é uma questão de persistência. Veja bem vamos às dúvidas:

    1- Já entendi que o usuário deve digitar a numeração e na virada do ano alterar de 2019 para 2020. Nesse caso na saída desse campo (Numeracao) o campo ano só não deveria ter esse código abaixo?
      Ano = Year(Date)

    2- Em outra solução que não siga esta regra acima, a função ficaria assim juntamente com outros eventos aqui postos. Para verificar, basta recuar um registro. Cheque também a tabela para ver como ficou:

    Código:
    Private Sub Form_Load()
    DoCmd.RunCommand acCmdRecordsGoToNew
    Me.Ano = Year(Date)
    End Sub
    Public Function AlteraAno()
    '#Código de Eduardo Machado (Good Guy) - Ano 2019
    'Adquira meus livros TÉCNICAS ESPECIAIS DE ACCESS VBA (Ed. Ciência Moderna) e DOMINE O ACCESS VBA (Ed. Livrorama)
    'Mais informações aqui mesmo no fórum MáximoAccess

    On Error Resume Next
    Dim strDataEsp As String
    Dim intDataAno As Integer
    Dim xAno As Long
    intDataAno = Month("31 / 12 / 2019")    'Ou Month(Date)

    xAno = Year(Date)
    strDataEsp = CDate(Format("31 / 12 /" & xAno, "dd/mm/yyyy"))

    If intDataAno = Month(strDataEsp) Then
        
      
          If #12/31/2019# = strDataEsp Then    'Ou  If Date = strDataEsp Then

           strDataEsp = CDate(Format("31 / 12 /" & xAno - 1, "dd/mm/yyyy"))
          
           If #1/1/2020# > strDataEsp Then    ' Ou If Date > strDataEsp Then  Se a data atual for maior que a data delimitada acima será acrescentado 1 à variável 'xAno'.
      
           xAno = Val(Me.Ano)
           DoCmd.RunCommand acCmdRecordsGoToLast
           Me.Ano = xAno + 1      'txtAno é o nome da caixa de texto do Ano que será alterado, isto é, acrescentado 1 ao ano.
           DoCmd.RunCommand acCmdSaveRecord
           Else
           Me.Ano = xAno - 1
           End If
        Else
        Exit Function
        End If
    Else
    Exit Function
    End If

      
    End Function

    Private Sub NumeroSeqeuncial_Click()
    Me.Ano = Year(Date)
    End Sub

    Private Sub NumeroSeqeuncial_Exit(Cancel As Integer)

    Call AlteraAno
    End Sub
    Anexos
    [Resolvido]Alterar apenas o ano e validar com 5 digitos AttachmentAlteraAno NEW.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (27 Kb) Baixado 5 vez(es)
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  OLDRIVG 16/5/2019, 13:59

    Olá, Good Guy, bom dia.

    Testei a sua sugestão e funcionou em parte.

    1 - Funciona quando é alterado o ano no calendário do sistema, entretanto o ano só é inserido no campo "Ano" fechando e abrindo o formulário. Não é inserido o ano em novo registro com o formulário já aberto.

    Tentei uma solução implementando os códigos na propriedade No Atual do formulário, mas não funfou.


    2 - No código abaixo, se a linha em cor vermelha estiver ativa não é possível navegar pelos registros. Ao clicar no botão de navegação só navega para o primeiro ou para o último registro. O seletor de registro fica com o ícone de um lápis e não de uma seta.


    '#Código de Eduardo Machado (Good Guy) - Ano 2019
    'Adquira meus livros TÉCNICAS ESPECIAIS DE ACCESS VBA (Ed. Ciência Moderna) e DOMINE O ACCESS VBA (Ed. Livrorama)
    'Mais informações aqui mesmo no fórum MáximoAccess

    On Error Resume Next
    Dim strDataEsp As String
    Dim intDataAno As Integer
    Dim xAno As Long
    intDataAno = Month("31 / 12 / 2019")    'Ou Month(Date)

    xAno = Year(Date)
    strDataEsp = CDate(Format("31 / 12 /" & xAno, "dd/mm/yyyy"))

    If intDataAno = Month(strDataEsp) Then
       
     
         If #12/31/2019# = strDataEsp Then    'Ou  If Date = strDataEsp Then

          strDataEsp = CDate(Format("31 / 12 /" & xAno - 1, "dd/mm/yyyy"))
         
          If #1/1/2020# > strDataEsp Then    ' Ou If Date > strDataEsp Then  Se a data atual for maior que a data delimitada acima será acrescentado 1 à variável 'xAno'.
     
          xAno = Val(Me.Ano)
          DoCmd.RunCommand acCmdRecordsGoToLast
          Me.Ano = xAno + 1      'txtAno é o nome da caixa de texto do Ano que será alterado, isto é, acrescentado 1 ao ano.
          DoCmd.RunCommand acCmdSaveRecord
          Else
          Me.Ano = xAno - 1
          End If
       Else
       Exit Function
       End If
    Else
    Exit Function
    End If
    End Function
    End Function


    Acredito que se houver uma solução para os entraves citados, vai funcionar a contento, espero.

    Agradecido

    Edição:
    Continuando os testes, verifiquei que todas as vezes que é ativado/carregado/aberto o formulário,  o código 'DoCmd.RunCommand acCmdRecordsGoToNew implementado no evento Ao Carregar do formulário, cria e salva um novo registro mesmo sem ter sido digitado qualquer dado. Existe alguma forma de solução?

    Agradecido



    PS. Como saber informações sobre os livros de sua autoria?
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  good guy 16/5/2019, 17:28

    Olá Old,

    Segue o arquivo. Experimente !!! Quanto aos livros verifique os anúncios na seção "Off Topic - Assuntos Variados" aqui mesmo no fórum !!!

    Esqueci dessa sugestão, tente trocar DoCmd.RunCommand acCmdRecordsGoToNew por DoCmd.RunCommand acCmdRecordsGoToNext
    Anexos
    [Resolvido]Alterar apenas o ano e validar com 5 digitos AttachmentAlteraAno NEW.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (33 Kb) Baixado 6 vez(es)
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  OLDRIVG 17/5/2019, 13:16

    Prezado Good Guy, bom dia.

    Me desculpe, mas não consegui assimilar nada no seu exemplo da última mensagem. Meu conhecimento é pouco (quase nenhum) em VBA.

    1 - Porque a criação do campo "TxtDataHoje"? No formulário não existe este campo.

    2 - Você criou uma nova função "AlteraAnoOficial". Serão usadas as duas funções? Função "AlteraAno" e "AlteraAnoOfical"?

    3 - A sugestão de trocar o comando "DoCmd.RunCommand acCmdRecordsGoToNew " por "DoCmd.RunCommand acCmdRecordsGoToNext", impede que crie novo registro ao carregar o formulário, mas, depois de carregado, ao clicar em "Adicionar Registro" não insere o ano no campo "Ano_Detalhe".

    4 - Continua funcionando em parte. Ou seja o ano é inserido somente se fechar e abrir o formulário. Se adicionar novo registro através do botão de comando, não é inserido o ano.

    Penso não haver jeito de fazer funcionar da forma que eu pretendia e a melhor forma é deixar o usuário digitar o ano.

    Em anexo uma cópia do BD que efetivamente será o usado. Caso veja, clique em adicionar no registro e verá que o ano não é inserido e que ao mudar o modo de exibição para Layout e retornar para modo formulário, é criado novo registro e o ano é inserido.

    Agradecido.
    Anexos
    [Resolvido]Alterar apenas o ano e validar com 5 digitos AttachmentROT GCM-NL PROT 1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (434 Kb) Baixado 3 vez(es)
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Alterar apenas o ano

    Mensagem  good guy 17/5/2019, 15:17

    Olá Old,

    1-O campo de data(txtDataHoje) é apenas um objeto de referência de data que pode ser deixado no modo oculto visible = Não em propriedades da caixa de texto. Não vai atrapalhar em nada apenas ajudar na virada do ano.
    2-A função AlteraAnoOficial substituirá a função AlteraAno quando todas as dúvidas forem sanadas.
    3-A substituição do comando "DoCmd.RunCommand acCmdRecordsGoToNew " por "DoCmd.RunCommand acCmdRecordsGoToNext" é para evitar o campo sequencial seja deixado em branco por eventuais adições de registro sem preenchimento desse campo. Quanto ao acréscimo do ano vigente, podemos verificar isso.
    Vou verificar seu programa. Ok ! Check abaixo as modificações. Digite um número sequencial qualquer e depois adicione um registro. Estamos supondo que a data de hoje seja 01/01/2020. Se tudo ocorrer bem, vou passar outro exemplo com a data de hoje de fato.
    Anexos
    [Resolvido]Alterar apenas o ano e validar com 5 digitos AttachmentROT GCM-NL PROT 1.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (464 Kb) Baixado 11 vez(es)
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  OLDRIVG 17/5/2019, 17:38

    Prezado Good Guy, boa tarde.

    Volto a lhe agradecer pelo empenho e boa vontade em ajudar. Na verdade, você é quem está fazendo.

    Fiz testes alterando a data do sistema e no botão "Adicionar Registro". Até então funcionou a inserção e a alteração do ano ao clicar no botão e ao alterar a data do sistema.

    O entrave agora é impedir o salvamento de registros em branco ao fechar o aplicativo ou ao clicar em adicionar registro. Mas isto creio que se resolverá com a implementação de alguns códigos que impeçam deixar algum campo em branco ou nulo. Creio.

    Aproveitando e abusando da sua boa vontade, qual é o código VBA que utilizo para especificar a quantidade obrigatória de caracteres que deve ser  inserida em um campo, no caso no campo "IdNumeroRo" que deverá conter 5 digitos?

    Agradecido

    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Alterar apenas o ano

    Mensagem  good guy 17/5/2019, 18:45

    Olá Old,

    Você tem que limitar o número de caracteres no evento ao sair(Exit) ou após atualizar(AfterUpdate) com a função Len, por exemplo:


    Código:

    Private Sub IdNumeroRo_Exit ()
    If len(IdNumeroRo) > 5 Then
    me.Undo
    Else
    Exit Sub
    End If
    End Sub
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  OLDRIVG 20/5/2019, 12:29

    Prezado Good Guy, bom dia.

    O código para limite de caracteresfunciona, mas não obriga a digitação de 5 dígitos exatamente. Ou seja, caso digitar menos que 5 dígitos é aceito normalmente. Fiz um teste usando a mascara de entrada e funcionou. Vamos experimentar e ver se continua a funcionar.

    Quanto ao código que você implementou no exemplo da msg nº 13, não está funcionando a contento. Ao abrir o aplicativo ou adicionar novo registro, não aparece o ano no campo "Ano". Como citei na msg anterior, estava funcionando e agora não mais.

    Agradecido.
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  Silvio 20/5/2019, 12:50

    Bom dia a todos...apenas se me permitem um pitaquinho...

    Basta apenas mudar a lógica

    Private Sub IdNumeroRo_Exit ()
    If len(IdNumeroRo) > 5 < Then
    msgbox" NumeroRo tem que ter 5 caracteres", vbcritical, "Aviso..."
    me.Undo
    me.NumeroRo.setfocus
    Else
    Exit Sub
    End If
    End Sub


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


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  OLDRIVG 20/5/2019, 13:03

    Bom dia, Sílvio.

    Agradeço a atenção.

    Infelizmente o código sugerido não funcionou. Retorna erro de compilação: "Era esperado: expressão"

    Agradecido
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  Alvaro Teixeira 20/5/2019, 14:07

    Olá a todos,

    Oldri, o ideal para ajuda ser mais acertiva será partilhar um pequeno exemplo da parte envolvida na questão para se testar.

    Abraço a todos
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  OLDRIVG 20/5/2019, 14:13

    Prezado AhTeixeira, bom dia.

    Na mensagem nº 13 do post existe uma cópia anexada da aplicação.

    Agradecido.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  Alvaro Teixeira 20/5/2019, 14:53

    Olá a todos,

    Oldri, desculpe, tem razão, não prestei a devida atenção.

    Vou ver o que posso fazer.

    cheers
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  Alvaro Teixeira 20/5/2019, 16:07

    Olá a todos,

    Oldri, optei por baixar o exemplo que tinha partilhado da mensagem nº 5.
    Em ambos os exemplo verifico que tem um campo para o "Numero" e outro para o "Ano".
    Se compreendi bem a dúvida, pertende continuar a numeração e alterar o ano (quando este altera) e manter a numeração (sem reiniciar).

    Creio que com o código abaixo podemos obter o que pretende:
    Código:
    Private Sub Form_Current()
        If CStr(Me.NewRecord) = -1 Then 'verifica se é um registo novo
            Me.txtNumeroRo = Format(Nz(DMax("[NumeroRo]", "tbl_Inicial_Ro"), 0) + 1, "00000")
            Me.txtAno = Year(Date)
        End If
    End Sub

    Segue o meu teste (altere a dao do sistema e verifique se é o pretendido)
    cld.pt/dl/download/7728ba6c-69a2-4728-a1a7-20324a41fd82/AlteraAno_rev.zip

    Abraço a todos
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  OLDRIVG 20/5/2019, 17:23

    Olá Ahteixeira e a todos, boa tarde.

    Ahteixeira, você entendeu em parte a dúvida. O campo "TxtNumero" é digitado e reinicia a cada ano mas manualmente. Ou seja, virou o ano em 31/12, o usuário inicia uma nova sequência. Este campo (TxTNumero) não pode conter o código que você implementou no evento No Atual porque a numeração não é sequencial. Por isto a digitação neste campo(TxtNumero).

    Quanto ao campo "Ano", você entendeu corretamente. Ou seja, na virada de 31/12, às 00:00:00:01, o ano deverá alterar para o ano seguinte automaticamente.

    A minha dificuldade é fazer funcionar a alteração do ano do campo "Ano" sem a intervenção do usuário. As sugestões que foram postadas nas msgs anteriores não funcionaram a contento, infelizmente.

    O mestre Good Guy enviou uma sugestão a qual está no anexo da Msg 13, mas, infelizmente não funcionou.

    Agradeço-lhe mais uma vez a atenção.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  Alvaro Teixeira 20/5/2019, 18:13

    Olá,

    Agora estou no celular, se é introduzido o número pelo utilizador a numeração não é automática.
    Quanto ao ano, uma vez que faz o que pretende tem que idealizat em que "evento" é que pode ser chamado para atribuir o ano.
    Talvez ao introduzir o número o utilizador ou no evento ao gravar.
    Fuca a sugestão.

    Abraço a todos
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  OLDRIVG 20/5/2019, 18:26

    Prezado Ahteixeira,

    a numeração não é automática. Automática deveria ser a alteração do ano em 31/12, as 00:00:00hs.

    P. Ex., ao findar o ano de 2019, em 31/12/2019, em 01/01/2020 os dígitos "2020" já deveriam estar inseridos no campo "Ano" ao abrir o formulário ou adicionar novo registro.

    Agradecido
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  Silvio 20/5/2019, 19:21

    Private Sub IdNumeroRo_Exit ()
    If len(IdNumeroRo) > 5 OR 5 < Then
    msgbox" NumeroRo tem que ter 5 caracteres", vbcritical, "Aviso..."
    me.Undo
    me.NumeroRo.setfocus
    Else
    Exit Sub
    End If
    End Sub

    Obs...experimente também o AND
    If len(IdNumeroRo) > 5 AND 5 < Then


    .................................................................................
    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."
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  good guy 20/5/2019, 23:31

    Olá Old,

    Qual é o problema que você está tendo ao alterar o ano quando se adiciona um registro? Aqui funfa 100% em qualquer situação. Me explique o que está acontecendo aí com você.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  Alvaro Teixeira 21/5/2019, 08:16

    Olá a todos,

    Oldri, se quer o simples, no seguimento do que disse na mensagem n. 25.

    1. Na tabela, no campo Ano, coloque no valor pre-definido:
    =year(date())

    2. Retire todo o código (vba) que tem a atribuir o ano e teste.

    Se a dúvida se mantiver, sugiro dar seguimento à sugestão do colega Eduardo.

    Abraço a todos
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  OLDRIVG 21/5/2019, 11:05

    Prezados, bom dia a todos.


    Sílvio, não funcionou as suas sugestões.
    Ao usar o OR retorna "Erro de compilação: Era esperado: expressão".
    Ao usar o AND retorna "Erro de Compilação: Erro de Sintaxe".


    Good Guy, na versão que uso do Access (2016, 32 bits) o problema que ocorre com as suas sugestões é que o campo "Ano" não é preenchido ao adicionar novo registro ou abrir o formulário quando está programado para abri em novo registro.
    O pretendido é que o campo "Ano" altere quando findar o ano. Ou seja, em 31/12, às 00:00:00 e que o campo "Ano" esteja com o ano atual inserido para novo registro ou, caso o formulário esteja pprogramado para abrir em novo registro, já abra com o ano inserido. E isto não ocorre.
    Já que no access que você utiliza está funfando legal, de repente pode ser que a versão do access que eu utilizo esteja com problemas, pois, como citei na msg nº 14, a sua sugestão estava funcionando, até então.
    De qualquer forma, a sugestão do Mestre Ahteixeira está funcionando.


    Ahteixeira, a sua sugestão funcionou e está funcionando, até então.


    Agradeço a todos pelas as atenções e empenhos na ajuda.

    Agora, caso alguém tenha alguma sugestão de código para que o usuário digite, obrigatoriamente, 5 caracteres no campo "IdNumeroRo", fico grato se compartilhar.
    As sugestões do Mestre Sílvio, infelizmente estão dando erro.

    Agradecido
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  Alvaro Teixeira 21/5/2019, 12:20

    Oldri, continuando no simples.

    Será colocar na regra de validação do campo na tabela:
    len([IdNumeroRo])=5

    Outra coisa, se só vai ter 5 caracteres, altere o tamanho do campo de 30 para 5
    Apesar do tamanho do espaço dos discos hoje em dia não ser problema, devemos dimensionar os dados para o que necessitamos (o desempenho agradece) fica a dica.
    E mais está se vai ser um campo de pesquisa, não esquecer de colocar indexado Wink

    Segue um exemplo se tiver dificuldade:
    cld.pt/dl/download/20091fcc-766e-4fe6-8a92-514ea524fee1/Limite5caracteres.zip

    Abraço a todos
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  Silvio 21/5/2019, 14:23

    Bom dia...

    Teixeira está certo, basta ir na tabela e no tamanho do campo, colocarmos como 5, isso vai travar para que não se digite mais caracteres que o necessário, mas eu penso que em partes.

    Divagando aqui, e se o  utilizador colocar 4, 3, 2 caracteres ?  Teria que haver uma forma de avisar o mesmo e " truncar " o campo, para as devidas correções do mesmo.

    Ps....mexendo com uma tabela, contornei o problema de avisar o utilizador sobre a quantidade de caracteres a serem digitados, veja a imagem abaixo.

    Tão pouco houve a necessidade de entrar com alguma rotina em VBA.

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Forum10


    Última edição por Silvio em 21/5/2019, 14:40, 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."
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  Alvaro Teixeira 21/5/2019, 14:28

    Olá Silvio,

    A minha mensagem anterior já está a fazer, repare tem que ser igual a 5.
    Baixe o exemplo e teste, até porque tem também a mensagem "personalizada" na tabela para avisar.

    Abraço a todos
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  OLDRIVG 21/5/2019, 14:35

    Bom dia Silvio.

    A sugestão do Ahteixeira funciona a contento.

    Mas concordo com você. Tem que avisar o usuário o que deve ser feito caso a regra de validação não seja satisfeita. Penso que a msg do Texto de Validação da tabela é muito vazio.

    Pensei em colocar o código abaixo no evento Ao Sair do campo no formulário, mas não funcionou;

    If IsNull(Me.IdNumeroRo) = True Then

    MsgBox " ESTE CAMPO DEVE SER PREENCHIDO COM UM NÚMERO CONTENDO 5 DÍGITOS", vbCritical, "ATENÇÃO USUÁRIO..."
    Me.Undo
    Me.IdNumeroRoDetalhes.SetFocus
    Else
    End If

    Alguma sugestão?

    Obrigado
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  Alvaro Teixeira 21/5/2019, 14:40

    Olá a todos,

    Seguindo a mesma lógica o simples seria:

    Código:
    If Len([Me.IdNumeroRo] &"") <> 5 Then

    cheers
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  Silvio 21/5/2019, 14:41

    Alvaro, Odri...
    Acréscimo de imagem na mensagem 31.


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


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  OLDRIVG 21/5/2019, 14:58

    Sílvio,

    na sugestão do Ahteixeira já propunha o Texto de Validação.

    Sílvio, Ahteixeira,

    entretanto, se o usuário clicar em outro campo ou apertar TAB sem digitar no campo IdNumeroRo, ele consegue prosseguir com o preenchimento do registro até que tente salvar o que não conseguirá pois o campo é requerido e estará vazio. O que redundaria em perda de tempo.

    Caso fosse possível impedir que o usuário prosseguisse sem preencher corretamente o campo, economizaria tempo e induziria o usuário a criar uma rotina própria de preenchimento.

    Por isto pensei em algum código no evento Ao Sair ou Após Atualizar do campo no formulário, e tentei usar o código postado na msg nº33.

    Agradecido
    Silvio
    Silvio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  Silvio 21/5/2019, 15:12

    If IsNull(Me.IdNumeroRo) Or Me.IdNumeroRo= "" Then

    MsgBox " ESTE CAMPO DEVE SER PREENCHIDO COM UM NÚMERO CONTENDO 5 DÍGITOS", vbCritical, "ATENÇÃO USUÁRIO..."
    Me.Undo
    Me.IdNumeroRoDetalhes.SetFocus
    Else
    End If


    .................................................................................
    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."
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  Alvaro Teixeira 21/5/2019, 15:30

    Olá a todos,

    Silvo, tal como Oldri referiu.

    Oldri, veja se atende o pretendido:
    cld.pt/dl/download/4fbf4ce7-c62e-4567-bdfd-4e47e6c42a44/Limite5caracteresForm.zip

    Código utilizado:
    Código:

    Private Sub Form_BeforeUpdate(Cancel As Integer)
        If Len(Me.txtIdNumeroRo & "") = 0 Then
            MsgBox " CAMPO OBRIGATORIO, ESTE CAMPO DEVE SER PREENCHIDO COM UM NÚMERO CONTENDO 5 DÍGITOS", vbCritical, "ATENÇÃO USUÁRIO..."
            Cancel = True
            Me.txtIdNumeroRo.SetFocus
        End If
    End Sub

    Private Sub txtIdNumeroRo_BeforeUpdate(Cancel As Integer)
        If Len(Me.txtIdNumeroRo & "") <> 5 Then
            MsgBox " ESTE CAMPO DEVE SER PREENCHIDO COM UM NÚMERO CONTENDO 5 DÍGITOS", vbCritical, "ATENÇÃO USUÁRIO..."
            Cancel = True
        End If
    End Sub

    Conclusão: temos que ter em atenção qual o evento mais apropiado para colocar o código.

    cheers
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  OLDRIVG 21/5/2019, 15:56

    Grande Ahteixeira!

    Matou a charada. Funcionou legal. Apenas alterei o evento, passei de Antes de Atualizar para Ao Sair no campo "IdNumeroRo".

    Uma pergunta didática: há necessidade de ter o código no evento Antes de Atualizar do formulário?

    Fiz testes sem este evento e também funcionou o que precisava. Ainda não conseguir assimilar o uso dos dois eventos, mas estou tentando.

    Como funcionou só com o código no evento Ao Sair do campo "IdNumeroRo", estou satisfeito.

    Vou aguardar tempo para o caso de você puder responder a minha curiosidade da pergunta acima, e, após, dou o tópico por resolvido.

    Desde já agradeço a todos (Good Guy, Silvio) e a você, Ahteixeira, pelo denodo, boa vontade e rotineira prestabilidade.

    Abraços a todos.

    Obrigado
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7914
    Registrado : 15/03/2013

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  Alvaro Teixeira 21/5/2019, 16:35

    Olá a todos

    Oldri, como referi deveremos verificar qual o evento mais apropiado e o que pode ser melhor num projeto, pode ser diferente noutro.
    E também tem muito haver com o UI (user interface) do aplicativo.

    Se as questões ficaram esclarecidas, não se esqueça de dar o tópico como "Resolvido".

    Abraço a todos
    OLDRIVG
    OLDRIVG
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  OLDRIVG 21/5/2019, 17:46

    Obrigado a todos.
    avatar
    Ismael Silva
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 827
    Registrado : 11/12/2017

    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  Ismael Silva 21/5/2019, 17:56

    Esse tópico é mais um exemplo de como a insistência faz diferença por vezes, como disse o colega inicialmente.

    Conteúdo patrocinado


    [Resolvido]Alterar apenas o ano e validar com 5 digitos Empty Re: [Resolvido]Alterar apenas o ano e validar com 5 digitos

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 20:03