Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

wilsoncrescencio

Evitando duplicação de campo

Recommended Posts

Delphi7 - Access -ADOCONNECTION

 

Estou tentando a duplicação de campos.

 

Para isso fiz o seguinte. No datamodule (DM1) eu dupliquei a tabela MATRICULA e a chamei de Mtr_Chek, eliminei todas as referências de eventos.

 

Na tabela MATRÍCULA localizei o objeto Aluno, dei um duplo click e sobre o evento OnValidate e digitei o seguinte:

procedure TDM1.MATRICULAALUNOValidate(Sender: TField);beginif DSMatricula.State in [dsEdit, dsInsert] then	// verifica se o modo é de edição ou inserçãoif Matr_chek.Locate('ALUNO',MatriculaAluno.Text, [loCaseInsensitive, loPartialKey])AND // pesquisa na tabela criadaMatr_chek.Locate('SERIE',MatriculaSERIE.Text, [loCaseInsensitive, loPartialKey]) THEN  // pesquisa na tabela criadaraise Exception.Create('Aluno(a) já Cadastrado!'#10+'Em caso de dúvida tente localiza-lo(a)'); //Caso exista mostrará mensagem de erro não permitindo o re-cadastramento.end;
De fato... ele encontra o arquivo já existente e não permite gravação, só que não aparece a mensagem de erro.

 

O que estou fazendo de errado?

 

Há outra maneira de se fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

No botão de salvar mesmo você pode fazer assim:

 

Crie uma Query que pegue os dados da tabela matricula.. usando um Where, o qual retorne apenas se o registro existir, entende?

De modo que se ao executá-la o recordcount dela for 0 ele não está cadastrado, do contrário você da uma mensagem e Cancela...

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Hugo... Vamos ver se entendi?você está me dizendo q posso fazer isso em SQL?Masi ou menos assim? (ADOQuery de nome Master1)

  Citar

MASTER1.SQL.Clear;MASTER1.SQL.Add('SELECT MATRICULA.ALUNO');MASTER1.SQL.Add('FROM MATRICULA');MASTER1.SQL.Add('WHERE ALUNO ="'+EDIT1.Text+'"');????????

Eu não entendo muito de SQL - É mais ou menos isso? E depois?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente, como o Hugo disse, você pode usar um Query pra fazer essa verificacão no click do botao salvar ....

 

 

with qry dobegin  Close;  SQL.Clear;  SQL.Add('SELECT NOMEALUNO FROM MATRICULAS');  SQL.Add('WHERE NOMEALUNO=' + QuotedStr(Edit1.Text));  Open;end;if (qry.RecordCount > 0) thenbegin   //Aluno ja existenteendelsebegin  //naum cadastrado ... {Rotina de cadasto}end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado a ambos.E quanto mais eu aprendo, mais eu vejo o quanto falta aprender...Valeu Rodrigo...Valeu Hugo...Dúvida sanada

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Citar

isso aew, qualquer duvida so postar, estamos aki pra aprender juntos. Afinal, nunca sabemos de tudo .... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Exatamente...Precisando estamos aqui grande Morpheu... é só falar http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.