Hola a todos, lo primero gracias por vuestro tiempo
.
Lo que tengo es una conexión con una tabla de access mediante ado.
Quiero que al iniciar el formulario principal compruebe un valor de cada uno de los registros de una tabla y lo cambie si es necesario, dicho campo es la franja de edad (0-3 años bebe, 3-13 infantil etc..) ahora viene lo raro...
Si dicho campo esta vacio en todos los registros me los cambia en todos y listo (són más de 4000 registros), si por ejemplo solamente dejo vacio el campo del primer y del último registro me cambia el primero pero no el último.
Si recorro la tabla al reves, desde el ultimo registro hasta el primero me cambia el valor del último pero no del primero. Pongo el código para ver si queda un poco claro que me parece que estoy dando demasiadas vueltas
Código Delphi
[-]procedure TfrmPrincipal.FormShow(Sender: TObject);
var
fnac:tdatetime;
anios,i:integer;
begin
datamodule2.ADOSocios.First;
while datamodule2.ADOSocios.eof=false do
begin
fnac:=datamodule2.ADOSociosFNac.Value;
anios:=strtoint(Edad(fnac));
if anios<=3 then
begin
if datamodule2.ADOSociosFRANJA.Value<>'BEBE' then
begin
datamodule2.ADOSocios.edit;
datamodule2.ADOSociosFRANJA.Value:='BEBE';
datamodule2.ADOSocios.post;
end;
end
else
if (anios>3) and (anios<=13) then
begin
if datamodule2.ADOSociosFRANJA.Value<>'INFANTIL' then
begin
datamodule2.ADOSocios.edit;
datamodule2.ADOSociosFRANJA.Value:='INFANTIL';
datamodule2.ADOSocios.post;
end;
end
else
if (anios>13) and (anios <=17) then
begin
if datamodule2.ADOSociosFRANJA.Value<>'JUVENIL' then
begin
datamodule2.ADOSocios.edit;
datamodule2.ADOSociosFRANJA.Value:='JUVENIL';
datamodule2.ADOSocios.post;
end;
end
else
if (anios>17) and (anios <=64) then
begin
if datamodule2.ADOSociosFRANJA.Value<>'ADULTOS' then
begin
datamodule2.ADOSocios.edit;
datamodule2.ADOSociosFRANJA.Value:='ADULTOS';
datamodule2.ADOSocios.post;
end;
end
else
begin
if datamodule2.ADOSociosFRANJA.Value<>'MAYORES 65' then
begin
datamodule2.ADOSocios.edit;
datamodule2.ADOSociosFRANJA.Value:='MAYORES 65';
datamodule2.ADOSocios.post;
end;
end;
datamodule2.ADOSocios.Next;
end;
end;
No se cual será el error, ya digo que si están todos los campos vacios lo comprueba bien y me inserta el valor bueno en todos los registros de la tabla. Gracias otra vez, un saludo