Mas que recorrer las tablas en delphi, usaremos un Tquery con su sentencia sql tal que así:
Código SQL
[-]
select codigoEmp, count(fecha) from Ausencias
where codigoEmp = :codigo and (fecha between :fechaini and fechaFin)
Porque supongo que querrás pedirlo entre dos fechas determinadas. Ya en Delphi:
Código Delphi
[-]
query1.parambyname('codigo').Asinteger := 32;
query1.parambyname('fechaini').Asdate := datetimepicker1.date;
query1.parambyname('fechaFin').Asdate := datetimepicker1.date;
query1.Open;
if not query1.IsEmpty then
begin
query2.sql.text := 'update ausContadas set TotalFaltas = :totales where codigoEmp = :codigo';
query2.parambyname('codigo').AsInteger := 32;
query2.parambyname('totales').AsInteger := query1.Fields[1].Asinteger;
query2.ExecSql;
end;
No sé si dbf podría hacer algo así, pruébalo ya que sería mejor:
Código SQL
[-]
update ausContadas set TotalFaltas =
(
select count(fecha) from Ausencias
where codigoEmp = :codigo and (fecha between :fechaini and fechaFin)
)
where codigoEmp = :codigo
En AusContadas, no entiendo como se pueden almacenar las faltas de todos los meses de un mismo empleado, por ejemplo.
Saludos.