Ver Mensaje Individual
  #35  
Antiguo 12-09-2008
ninguno ninguno is offline
Miembro
 
Registrado: sep 2008
Posts: 45
Reputación: 0
ninguno Va por buen camino
Hola Abuelo7

A ver qué te parece esta solución:

Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  // si no es la tecla que buscamos, salimos y listo ;-)
  if Key <> #13 then Exit;

  // abrimos tablas
  Table1.Open;
  Table2.Open;
  // ponemos el código en un bloque try..finally para asegurarnos de que pase lo que pase éstas se cierren
  try
    // si localizamos lo buscado en Tabla1 y su resultado en Tabla2, lo añadimos al Memo1
    // Este if funciona debido a que SOLO se evaluará la segunda condición si la primera
    // se cumple (por eso de ser un AND) y si la primera se cumple, ya estamos posicionados
    // en el registro buscado (o al menos eso dice la teoría, no lo he probado xD)
    if (Table1.Locate('palabra', Edit1.Text, [loCaseInsensitive])) and
       (Table2.Locate('NUMERO', Table1.fieldByName('NUMERO').AsString, [loCaseInsensitive])) then
    begin
      Memo1.Lines.Add(Edit1.Text);
      Memo1.Lines.Add(Table2.fieldByName('RESPUESTA').AsString);
    end;
  finally
    Table1.Close;
    Table2.Close;
    Edit1.Text :='';
  end;
end;

En tu código siempre asignas algo al Memo1. Si es lo que quieres, podemos cambiar algo ese código para que así sea. Por otro lado, tu código seguramente te dará algún warning o hint dado que usas respuesta2 sin que ésta esté inicializada (está dentro de un if que no tiene por qué realizarse).

Última edición por ninguno fecha: 12-09-2008 a las 18:45:16.
Responder Con Cita