Viva Pessoal,
tenho uma classe pessoa, com um método (função da classe) "JaExisteNaTabela" que me retorna "false" quando não devia de o fazer,
(tudo porque tenho um "if" mal feito, mas não não o que está mal....)
Será que criei 2 objectos "date" completamente distintos, e nunca são iguais? (mesmo quando o valor é igual).
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" no método "JaExisteNaTabela", por favor vejam-me a bd.
Desculpem a maçada...
tenho uma classe pessoa, com um método (função da classe) "JaExisteNaTabela" que me retorna "false" quando não devia de o fazer,
(tudo porque tenho um "if" mal feito, mas não não o que está mal....)
- 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"))
[color=#ff0000]If StrComp(nome, campo_Nome)=true And StrComp(apelido, campo_Apelido)=true And campo_DataDeNascimento = DataDeNascimento Then[/color]
JaExisteNaTabela = True
End If
GrelhaResultadosDePessoa.MoveNext ' Avança para o próximo registo da Grelha com os registo
Wend
GrelhaResultadosDePessoa.Close
End Function
- Código:
If (StrComp(nome, campo_Nome, vbTextCompare) = True) And (StrComp(apelido, campo_Apelido, vbTextCompare) = True) And (campo_DataDeNascimento = DataDeNascimento) Then
Será que criei 2 objectos "date" completamente distintos, e nunca são iguais? (mesmo quando o valor é igual).
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" no método "JaExisteNaTabela", por favor vejam-me a bd.
Desculpem a maçada...
- Anexos
- Exemplo4(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 3 vez(es)