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


3 participantes

    Erro em formulário de cadastro em tempo de execução!

    avatar
    oluap
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 11/12/2016

    Erro em formulário de cadastro em tempo de execução! Empty Erro em formulário de cadastro em tempo de execução!

    Mensagem  oluap 27/1/2017, 16:18

    Boa tarde, pessoal!

    Estou amarrado na seguinte situação:

    Tenho um campo DATA_NASCIMENTO (Fonte do Controle = DATA_NASCIMENTO, Texto sem formatação, Máscara de entrada = 00/00/0000;0;_), tendo em seu Evento Após Atualizar o seguinte código:

    Private Sub DATA_NASCIMENTO_AfterUpdate()
    Me.IDADE = CalcularIdade(DATA_NASCIMENTO)
    Me.txtIdadeCompleta = AnoMesDia(DATA_NASCIMENTO)
    Me.IDADE.Requery
    Me.txtIdadeCompleta.Requery
    End Sub

    Ao chamar o Formulário, aparece no campo ‘txtIdadeCompleta’: (#Tipo! )

    Ao apertar a tecla TAB no teclado, pelo Formulário, no campo DATA_NASCIMENTO, o Access 2013 emite a seguinte mensagem:

    Erro em tempo de execução ‘-2147352567 (80020009)’:
    Você não pode atribuir um valor a este objeto.
    [Fim] [Depurar] [Ajuda]


    Se clicar em [Fim], o Access executa normalmente a ação nos dois campos IDADE e IDADE COMPLETA;
    Se clicar em [Depurar], o Access abre a janela de código na seguinte marcação:

    Me.txtIdadeCompleta = AnoMesDia(DATA_NASCIMENTO)


    Segue o código do módulo que calcula a idade:
    --------------------------------------------------------------
    Public Function CalcularIdade(DATA_NASCIMENTO As Date) As Integer
    If IsDate(DATA_NASCIMENTO) And Not IsNull(DATA_NASCIMENTO) Then
    CalcularIdade = Int((Date - [DATA_NASCIMENTO]) / 365.25)
    Else
    CalcularIdade = 0
    End If
    End Function

    Segue o código do módulo que calcula a idade completa:
    ---------------------------------------------------------------------------
    Public Function AnoMesDia(DATA_NASCIMENTO As Date) As String
    On Error GoTo AnoMesDia_Err

    Dim sTmp As String
    Dim nDMA As Long
    Dim NewDate As Date
    Dim sSngPlural As String
    Dim dtData2 As Date

    dtData2 = Now

    ' Bloco Ano ---------------------
    ' Calcula número inteiro de anos
    nDMA = DateDiff("yyyy", DATA_NASCIMENTO, dtData2)
    ' Se Data1+nDMA>Data2, subtrai 1 ano
    If DateAdd("yyyy", nDMA, DATA_NASCIMENTO) > dtData2 Then
    nDMA = nDMA - 1
    End If
    sSngPlural = " ano, "
    If nDMA > 1 Then sSngPlural = " anos, "
    sTmp = nDMA & sSngPlural

    ' Bloco Mês ---------------------
    ' Nova data de referência
    NewDate = DateAdd("yyyy", nDMA, DATA_NASCIMENTO)
    nDMA = DateDiff("m", NewDate, dtData2)
    ' Se Data1+nDMA>Data2, subtrai 1 mês
    If DateAdd("m", nDMA, NewDate) > dtData2 Then
    nDMA = nDMA - 1
    End If
    sSngPlural = " mês e "
    If nDMA > 1 Then sSngPlural = " meses e "
    sTmp = sTmp & nDMA & sSngPlural

    ' Bloco Dia ---------------------
    NewDate = DateAdd("m", nDMA, NewDate)
    nDMA = DateDiff("d", NewDate, dtData2)
    sSngPlural = " dia"
    If nDMA > 1 Then sSngPlural = " dias"
    sTmp = sTmp & nDMA & sSngPlural

    ' Valor final da função
    AnoMesDia = sTmp

    AnoMesDia_Fim:
    Exit Function
    AnoMesDia_Err:
    MsgBox Err.Description
    Resume AnoMesDia_Fim
    End Function
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    Erro em formulário de cadastro em tempo de execução! Empty Re: Erro em formulário de cadastro em tempo de execução!

    Mensagem  FabioPaes 28/1/2017, 02:17

    Melhor postar o Exemplo amigo...


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    oluap
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 11/12/2016

    Erro em formulário de cadastro em tempo de execução! Empty Re: Erro em formulário de cadastro em tempo de execução!

    Mensagem  oluap 28/1/2017, 22:44

    Boa noite.

    Segue em anexo...
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    Erro em formulário de cadastro em tempo de execução! Empty Re: Erro em formulário de cadastro em tempo de execução!

    Mensagem  FabioPaes 29/1/2017, 00:07

    O que acontece amigo, e que vc disse que esse campo é = AnoMesDia(DATA_NASCIMENTO) na Fonte de controle dele... sendo assim ele nao aceitara nenhum outro valor pelo VB.
    Erro em formulário de cadastro em tempo de execução! 15y6qz4
    Por isso remova essa parte, e aplique apenas pelo VBA....


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    philipp.moreira
    philipp.moreira
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 257
    Registrado : 05/02/2016

    Erro em formulário de cadastro em tempo de execução! Empty Re: Erro em formulário de cadastro em tempo de execução!

    Mensagem  philipp.moreira 29/1/2017, 00:11

    Inclui um tratamento na função AnoMesDia() para tratar valor do parâmetro como Nulo.

    Conteúdo patrocinado


    Erro em formulário de cadastro em tempo de execução! Empty Re: Erro em formulário de cadastro em tempo de execução!

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 2/5/2024, 20:43