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]Como é que eu comparo 2 objecto do tipo date ? ...E de String ?

    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]Como é que eu comparo 2 objecto do tipo date ? ...E de String ? Empty Como é que eu comparo 2 objecto do tipo date ? ...E de String ?

    Mensagem  rui.o.pereira 26/9/2014, 16:29

    Viva, comunidade!
    Tenho um erro.

    isto é uma método de uma classe pessoa com 3 propriedades: Nome, Apelido e Datadenascimento (que por a caso é igual aos campos da tabela.)

    Código:
    'Existe na tabela
    Public Function JaExisteNaTabela() As Boolean
    ' Esta Função mostra como se pode aceder à tabela "pessoa"

        JaExisteNaTabela = False
        Dim GrelhaResultadosDePessoa As DAO.Recordset 'Declara um objecto que vai ficar com os resultados que já _
        estão na tabela de tabela "Pessoa"
        Dim campo_ID As Long
        Dim campo_Nome, campo_Apelido As String
        Dim campo_DataDeNascimento As Date
        ' refere a esta Base de dados
        Set GrelhaResultadosDePessoa = CurrentDb.OpenRecordset("pessoa") 'Acede à tabela e reserva o espaço em memória com _
        os registos que extraiu da tabela. Põe os registos que foi buscar à tabela numa grelha de resultados.
        While Not GrelhaResultadosDePessoa.EOF 'Enquanto a grelha não chegar ao Fim. _
                                                    a propriedade "EOF" fica a "TRUE" quando chegar ao fim da grelha
            campo_ID = GrelhaResultadosDePessoa.Fields("ID").Value ' Aqui é extraído o valor de "ID" que está na grelha
            campo_Nome = GrelhaResultadosDePessoa.Fields("Nome").Value
            campo_Apelido = GrelhaResultadosDePessoa.Fields("Apelido")
            campo_DataDeNascimento = CDate(GrelhaResultadosDePessoa.Fields("DataDeNascimento"))
            If StrComp(nome, campo_Nome) And StrComp(apelido, campo_Apelido) And campo_DataDeNascimento = DataDeNascimento Then
                JaExisteNaTabela = True
            End If
            GrelhaResultadosDePessoa.MoveNext ' Avança para o próximo registo da Grelha com os registo
        Wend
        GrelhaResultadosDePessoa.Close
    End Function


    Esta comparação de datas e strings está a dar-me erro. (Desconfio que esta sintaxe está errada)
         
    Código:
    If StrComp(nome, campo_Nome) And StrComp(apelido, campo_Apelido) And campo_DataDeNascimento = DataDeNascimento Then


    Será que tenho de usar um método da classe "Date" e usar no meu objecto,
    tipo:...exemplo: DataDeNascimento.ÉIgualA(campo_DataDeNascimento )

    Podem ajudar-me?


    Obrigado.


    Última edição por rui.o.pereira em 27/9/2014, 10:09, editado 1 vez(es)
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Como é que eu comparo 2 objecto do tipo date ? ...E de String ? Empty Re: [Resolvido]Como é que eu comparo 2 objecto do tipo date ? ...E de String ?

    Mensagem  Alexandre Neves 26/9/2014, 18:17

    Boa tarde,
    Não percebi o que pretende


    .................................................................................
    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
    rui.o.pereira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Como é que eu comparo 2 objecto do tipo date ? ...E de String ? Empty Posso usar simplesmente um operador binário "=" (o sinal de igualdade) para ver se dois objectos são iguais ? .. Ou só funciona nos tipos de dados mais simples.

    Mensagem  rui.o.pereira 27/9/2014, 08:29

    O que eu gostaria de saber é:

    Posso usar simplesmente um operador binário "=" (o sinal de igualdade) para ver se dois objectos são iguais ?

    Código:
    campo_DataDeNascimento = DataDeNascimento

    Isto são dois objetos do tipo DATE, Posso compará-los assim só com o igual?


    Este "if" em baixo devia de dar "True" nas três expressões...pois de facto tenho um registo que já existe na tabela

    Código:
    If StrComp(nome, campo_Nome) And StrComp(apelido, campo_Apelido) And campo_DataDeNascimento = DataDeNascimento Then


    Eu usei a função "strcomp" para comparar 2 objectos do tipo "String".

    Pergunto: Tenho de fazer o mesmo com a datadenascimento? Há alguma função própria para comparar datas ?


    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Como é que eu comparo 2 objecto do tipo date ? ...E de String ? Empty Re: [Resolvido]Como é que eu comparo 2 objecto do tipo date ? ...E de String ?

    Mensagem  Alexandre Neves 27/9/2014, 10:02

    Bom dia,
    Pode comparar campo_DataDeNascimento com DataDeNascimento pelo sinal de =
    Relativamente à StrComp, ela devolve um valor que não o está a aproveitar
    Deveria ser do género:
    If StrComp(nome, campo_Nome) =True And StrComp(apelido, campo_Apelido) =True And campo_DataDeNascimento = DataDeNascimento Then


    .................................................................................
    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
    rui.o.pereira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Como é que eu comparo 2 objecto do tipo date ? ...E de String ? Empty Re: [Resolvido]Como é que eu comparo 2 objecto do tipo date ? ...E de String ?

    Mensagem  rui.o.pereira 27/9/2014, 10:09

    aa Ok, Very Happy Já percebi, obrigado..

    Eu julgava que não precisava de pôr o igual a true, ....pensava que ela (função strcomp) retornava o true por si só para aquele sitio onde foi chamada...

    Muito agradecido pelo esclarecimento.
    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]Como é que eu comparo 2 objecto do tipo date ? ...E de String ? Empty Ainda n consegui,

    Mensagem  rui.o.pereira 27/9/2014, 10:59

    Ainda tenho mais erros naquele "if",

    Será que tenho de converter as duas datas para string, (com a função "str") ? e depois usar também o strcomp nas datas convertidas em string ? e comparar depois o texto?


    ..Ou será que tenho uma forma mais simples de ver se o registo existe (sem ser por chave primária) na minha classe "Pessoa" tenho um método "JaExisteNaTabela", por favor vejam-me a bd.

    Desculpem a maçada...
    Anexos
    [Resolvido]Como é que eu comparo 2 objecto do tipo date ? ...E de String ? AttachmentExemplo4(com objectos e métodos de manipulação de tabelas).zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (34 Kb) Baixado 1 vez(es)


    Última edição por rui.o.pereira em 27/9/2014, 11:08, editado 4 vez(es)

    Conteúdo patrocinado


    [Resolvido]Como é que eu comparo 2 objecto do tipo date ? ...E de String ? Empty Re: [Resolvido]Como é que eu comparo 2 objecto do tipo date ? ...E de String ?

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/4/2024, 16:22