e ai pessoal, tranquilo?? Eu estou fazendo um sistema de controle de acesso com delphi. Em termos já resolvi o problema, mas queria o auxilio de voces para outros modos de utilização do sistema.
Bom eu tenho uma Tabela no Access chamada TabAcesso que tem os seguintes campos: ID pessoa_ID data hraEntrada hraSaida Status Essa tabela,a TabAcessos, dentro do AdoTable dei o nome de tbAcesso. Bom, quando uma pessoa entra na instituição, eu pesquiso primeiramente se essa pessoa já teve o acesso naquele dia. Se não entrou eu preencho os campos da tabela menos o hraSaida e no estatus eu coloco a letra "E" referente a Entrada. Feito isso, quando essa pessoa sair eu faço uma pesquisa SQL que verifica qual é o status da pessoa dessa maneira: qryStatus.SQL.Clear; qryStatus.SQL.ADD('SELECT TOP 1 * FROM TabAcessos WHERE pessoa_ID = ' + edID.txt); qryStatus.SQL.ADD('Order By pessoa_ID Desc); qryStatus.Open; Nessa pesquisa, eu acho o ultimo registro dessa pessoa, como não entendo muito de SQL e pesquisei esse comando na net não sei se esta 100% correto, mas sei que esta funcionando aqui. Bom, depois de ter feito isso eu faço o seguinte: if (qryStatus.FieldByName('Status').AsString = 'E') then Begin tbAcesso.Locate('ID', qryStatus.FieldByName('ID').AsInteger,[]); tbAcesso.Edit; End else tbAcesso.Append; Bom, depois da consulta SQL eu faço um teste para verificar se o ultimo registro da pessoa o status dela é 'E' se ele for eu com o tbAcesso.Locate eu tento me posicionar naquele registro para alterar a hora de saida e o status para 'S'. Mas é importante frizar que uma pessoa pode entrar e sair varias vezes no dia. Eu queria que voces dessem uma olhada para me dizer se existe uma outra maneira derrepente até mais segura. Eu tenho receio do tbAcesso.Locate em não se posicionar na ultima coluna da pessoa para que eu possa edita-la. Bom, é isso []´s Michael