Ver Mensaje Individual
  #1  
Antiguo 17-12-2006
javieron javieron is offline
Registrado
 
Registrado: oct 2006
Posts: 3
Reputación: 0
javieron Va por buen camino
Exclamation Actualizar campo en access

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

Última edición por javieron fecha: 17-12-2006 a las 01:40:26.
Responder Con Cita