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


2 participantes

    [Resolvido] If caixa_de_texto_da_data_de_nascimento Is Not Null Then

    avatar
    rui.o.pereira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 20
    Registrado : 19/01/2014

    [Resolvido] If caixa_de_texto_da_data_de_nascimento Is Not Null Then Empty [Resolvido] If caixa_de_texto_da_data_de_nascimento Is Not Null Then

    Mensagem  rui.o.pereira 18/9/2014, 21:37

    pessoal,

    tenho um erro.

    Eu sei que este objecto é nulo quando dá erro...(porque estou a adicionar um registo novo)

    esta linha é de uma função que fiz para calcular a idade...

            " If caixa_de_texto_da_data_de_nascimento Is Not Null Then "

    O erro dá nesta linha..

    existe outra forma de testar se a instância existe sem dar erro
    eu usei este if justamente para evitar este erro .

    O que é que pode ser?

    Alguém tem uma sugestão pra mim?
    (Parece-me que só dá erro quando adiciono um registo novo..)

    (Antes trabalhava bem, depois comecei a inventar.....e deu nisto...)




     
    Código:
     Public Function funcao_calcula_idade(caixa_de_texto_da_data_de_nascimento As TextBox) As Integer  'Este "As Integer" diz ao compilador de Visual Basic
                                                        'que a função retorna um valor inteiro (tipo de dados a retornar é um inteiro).
        
                                        'Reparem que há uma passagem de parâmetros por valor-> o OBJECTO: "Caixa de Texto" (em inglês: "TextBox")
        
        Rem Agrupamento de Escolas de Ourém - Rui Pereira
     
        'Aqui existe uma variável (funcao_calcula_idade) com o mesmo nome da função (funcao_calcula_idade)
        'É POR ESTA MESMA VARIÁVEL QUE ESTA MESMA FUNÇÃO RETORNA UM VALOR (PARA O SITIO ONDE FOI "CHAMADA")!!!
        'Daí, se chamar FUNÇÃO!!E NÃO É UMA ROTINA OU PROCEDIMENTO
        
        'String é um tipo de dados que simboliza uma frase -> texto simples ou cadeia de carateres
        Dim texto_da_data_de_nascimento As String

        'Declaração de d_nascimento como um tipo de dados->data (Em inglês: "Date")
        Dim d_nascimento As Date
        
        'O "if" (pode levar parentesis ou não) é uma estrutura de decisão que testa a expressão à sua frente
        'há, agregadas ao "if" um conjunto de instruções que serão executadas, se o resultado da expressão booleana
        '(em frente a este if) for verdadeira, se o resultado for "TRUE"
        
        'Simplificando...Consideremos o nosso caso: (se o valor de "texto_da_data_de_nascimento" não é nulo... então...)
        'significa que não está vazio
        If caixa_de_texto_da_data_de_nascimento Is Not Null Then 'Estamos a validar se a caixa de texto existe (quando o registo é novo, não existe)
            'Aqui já estamos a atribuir a "texto_da_data_de_nascimento" o conteúdo da propriedade da caixa de texto que recebemos por parâmetro
            texto_da_data_de_nascimento = caixa_de_texto_da_data_de_nascimento.Value
            If (texto_da_data_de_nascimento <> "") Then '...Se não estiver vazio, executa o que está dentro do "if"
                If CDate(texto_da_data_de_nascimento) Then 'Vamos testar: se podemos converter o texto em data, a função "cdate"
                    d_nascimento = CDate(texto_da_data_de_nascimento) 'converter o texto em data
                    funcao_calcula_idade = (Now() - d_nascimento) / 365
                Else
                    MsgBox "Erro a converter o texto para uma data"
                    Debug.Print texto_da_data_de_nascimento
                End If
            End If
        End If
        'Como vimos antes.... o resultado da subtração é um número inteiro com casas decimais (Tipo de dados -> Double ou float)
        'Mas o tipo de dados a retornar pela função: é um INTEIRO ou seja: o valor a retornar por esta função "perde as casa decimais"
        'sendo um número inteiro, faz com que o resultado da subtração só armazena na variável: "funcao_calcula_idade" a parte inteira
        
        ' A "palavra-reservada" (KeyWord) -->"public" (permite que esta função seja chamada em qualquer sitio da base de dados)
        ' também é importante para ser disponibilizada/chamada em qualquer evento que ocorra na base de dados
    End Function


    Última edição por rui.o.pereira em 27/9/2014, 11:13, editado 2 vez(es)
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido] If caixa_de_texto_da_data_de_nascimento Is Not Null Then Empty Re: [Resolvido] If caixa_de_texto_da_data_de_nascimento Is Not Null Then

    Mensagem  Dilson 23/9/2014, 10:46

    Bom dia !

    Tente:
    If Not IsNull(caixa_de_texto_da_data_de_nascimento) Then
    avatar
    rui.o.pereira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 20
    Registrado : 19/01/2014

    [Resolvido] If caixa_de_texto_da_data_de_nascimento Is Not Null Then Empty Obrigado, Dilson.

    Mensagem  rui.o.pereira 24/9/2014, 15:06

    Obrigado, Dilson.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido] If caixa_de_texto_da_data_de_nascimento Is Not Null Then Empty Re: [Resolvido] If caixa_de_texto_da_data_de_nascimento Is Not Null Then

    Mensagem  Dilson 24/9/2014, 15:08

    De nada.

    Se resolveu, por gentileza marque o Resolvido.

    Abraço!

    Conteúdo patrocinado


    [Resolvido] If caixa_de_texto_da_data_de_nascimento Is Not Null Then Empty Re: [Resolvido] If caixa_de_texto_da_data_de_nascimento Is Not Null Then

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 23:40