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]Access corrigindo a data automaticamente.

    avatar
    Thel
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 109
    Registrado : 19/06/2012

    [Resolvido]Access corrigindo a data automaticamente. Empty [Resolvido]Access corrigindo a data automaticamente.

    Mensagem  Thel em 11/9/2018, 23:14

    Boa noite,

    Tenho um campo chamado 'DATA' com máscara de entrada (dd/mm/aaaa) em um formulário. O problema é que quando digito uma data inexistente nesse campo, por exemplo 12/13/2018, o Access "corrige" para 13/12/2018.
    Teoricamente isso não era para acontecer pois tanto o banco de dados quanto o controle 'DATA' do formulário está configurado para NÃO USAR AUTOCORREÇÃO. Além disso tenho este código no evento AO OCORRER ERRO do formulário:
    ===============================================================
    Código:
    Private Sub Form_Error(DataErr As Integer, Response As Integer)

    ' AUTORES: Microsoft e Eu

    Const INPUTMASK_VIOLATION = 2279 'SUBSTITUI A MENSAGEM DE ERRO PADRÃO DA MÁSCARA POR INSUFICIÊNCIA DE NÚMEROS DE CARACTERES
    Const DATAVALUE_VIOLATION = 2113 'SUBSTITUI A MENSAGEM DE ERRO PADRÃO DA MÁSCARA POR INSERÇÃO DE DATA INEXISTENTE

    '::INÍCIO DO CÓDIGO PARA MÁSCARA DE ENTRADA ERRADA, QUANDO SE DIGITA NÚMERO INSUFICIENTE DE CARACTERES::
    If DataErr = INPUTMASK_VIOLATION Then
    Select Case Screen.ActiveControl.Name

    Case "Data"
    Beep
    MsgBox "DATA INCORRETA!", vbCritical, "ERRO"
    Data.Undo
    Data = Null

    Case Else
    End Select
    Response = acDataErrContinue 'INIBE MENSAGEM PADRÃO DE ERRO DO ACCESS
    End If
    '::FIM DO CÓDIGO PARA MÁSCARA DE ENTRADA ERRADA, QUANDO SE DIGITA NÚMERO INSUFICIENTE DE CARACTERES::


    '::INÍCIO DO CÓDIGO PARA MÁSCARA DE ENTRADA ERRADA, QUANDO SE DIGITA UMA DATA INEXISTENTE. EXEMPLO: 12/88/1988::
    If DataErr = DATAVALUE_VIOLATION Then
    Select Case Screen.ActiveControl.Name

    Case "Data" 'CAMPO 1
    Beep
    MsgBox "DATA INCORRETA!", vbCritical, "ERRO"
    Data.Undo
    Data = Null
           
    Case Else
    End Select
    Response = acDataErrContinue 'INIBE MENSAGEM DE ERRO PADRÃO DO ACCESS
    End If
    '::FIM DO CÓDIGO PARA MÁSCARA DE ENTRADA ERRADA, QUANDO SE DIGITA UMA DATA INEXISTENTE. EXEMPLO: 12/88/1988::

    End Sub
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    [Resolvido]Access corrigindo a data automaticamente. Empty Re: [Resolvido]Access corrigindo a data automaticamente.

    Mensagem  Alexandre Neves em 12/9/2018, 19:14

    Boa tarde

    Ao tempo que anda pelo fórum, já falámos tantas vezes para respeitar os nomes reservados do Access
    Uma das razões pode ser essa

    Deve utilizar a conversão de data: Format(CampoData,"mm-dd-yyyy")


    .................................................................................
    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
    avatar
    Thel
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 109
    Registrado : 19/06/2012

    [Resolvido]Access corrigindo a data automaticamente. Empty Re: [Resolvido]Access corrigindo a data automaticamente.

    Mensagem  Thel em 12/9/2018, 19:37

    Boa tarde, Alexandre.

    Verdade, um detalhe simples que me passou despercebido: não usar nomes reservados ao Access nos controles.

    OK. Já fiz a correção: mudei o nome do controle de 'Data' para 'DataCad', mas infelizmente o problema persiste.

    Esse campo 'DataCad' do formulário tem como origem de dados o campo 'DataCad' de uma tabela, ou seja, ele está acoplado. E esse campo 'DataCad' da tabela tem como tipo de dados Data/Hora. Será que é isso? Terei que mudar o tipo de dados para texto antes?
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    [Resolvido]Access corrigindo a data automaticamente. Empty Re: [Resolvido]Access corrigindo a data automaticamente.

    Mensagem  Assis em 12/9/2018, 19:47

    Thel

    Poste aqui só o form e a tabela.


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    Thel
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 109
    Registrado : 19/06/2012

    [Resolvido]Access corrigindo a data automaticamente. Empty Re: [Resolvido]Access corrigindo a data automaticamente.

    Mensagem  Thel em 12/9/2018, 20:15

    OK, Assis.
    Segue o meu banco de dados com apenas a tabela e o formulário.
    Assis
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    [Resolvido]Access corrigindo a data automaticamente. Empty Re: [Resolvido]Access corrigindo a data automaticamente.

    Mensagem  Assis em 12/9/2018, 21:28

    Thel

    Nas minhas Bds uso sempre um calendário para digitar datas e nunca me apercebi deste caso.

    Mas so acontece ao digitar 12/13/2018, o access altera porque o mês 13 não existe.

    No meu PC esta a acontecer o mesmo.


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    Thel
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 109
    Registrado : 19/06/2012

    [Resolvido]Access corrigindo a data automaticamente. Empty Re: [Resolvido]Access corrigindo a data automaticamente.

    Mensagem  Thel em 12/9/2018, 21:41

    Oi Assis!

    Eu não uso calendário, porque não o acho prático.
    Esse problema é muito comum, mesmo o usuário marcando que não quer a autocorreção no campo o Access não obedece. Eu acho isso uma falha do Access, deveria obedecer à regra.
    Já testei até uma função que um usuário criou, mas o código é enorme e não é nada prático.

    Eu tive até uma ideia, mas não sei como colocá-la em prática: criar um código que exiba uma mensagem de erro e desfaça a digitação se:

    1. Os dois primeiros números, que representam os dias, forem maior que 31;
    2. O terceiro e quarto número, que representam os meses, forem maior que 12.

    Vou aguardar 1 ou 2 dias para ver se alguém achou uma solução.

    De qualquer maneira valeu a força e a tentativa!
    avatar
    Thel
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 109
    Registrado : 19/06/2012

    [Resolvido]Access corrigindo a data automaticamente. Empty Re: [Resolvido]Access corrigindo a data automaticamente.

    Mensagem  Thel em 20/9/2018, 13:16

    Dei o tópico como resolvido, infelizmente não achei a solução. Isso é uma falha que o Access deveria ter sido resolvida.

    Conteúdo patrocinado

    [Resolvido]Access corrigindo a data automaticamente. Empty Re: [Resolvido]Access corrigindo a data automaticamente.

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 24/8/2019, 10:30