bueno, esto es algo complicadillo de explicar (es queno me explico muy bien yo
), pero veamos si logro explicarlo
Tenemos 3 Edits y un RadioGroup. Según la selección del RG debemos seleccionar uno u otro Edit para sacar la consulta SQL. Bien, como te comentaba en el mensaje anterior, puedes hacerlo mediante la propiedad ItemIndex de éste
Código:
Qry_BusquedaRegistro.Close;
Qry_BusquedaRegistro.Prepared;
case RadioGroup1.ItemIndex of
0 : Qry_BusquedaRegistro.Parameters.ParamByName('Numero_Documento').Value := DBEdit1.Text;
1 : Qry_BusquedaRegistro.Parameters.ParamByName('Numero_Documento').Value := DBEdit2.Text;
2 : Qry_BusquedaRegistro.Parameters.ParamByName('Numero_Documento').Value := DBEdit3.Text;
end;
Qry_BusquedaRegistro.Open;
if Qry_BusquedaRegistro.IsEmpty then
ShowMessage('El Numero de Registro No Existe');
Para el tema de devolver un registro... qué quieres, devolver todo el registro o sólo un campo de éste?
Dependiendo de lo que quieras hacer, puedes crear un TStringList y rellenarlo con todos los campos que quieras devolver (una linea por cada uno de ellos para facilitar su recuperación después) o bien tener una variable de tipo Variant a la que le asignas la columna que quieras devolver.
Tanto un método como el otro, las variables han de ser públicas de la pantalla de búsquedas para luego, desde el form llamador, acceder a ellas una vez cerrada la pantalla y antes de liberarla de memoria (con Free o como lo hagas).
Si quieres un ejemplo de todo este rollo, en mi web tienes el componente TDbSearchDialog que precisamente hace eso (montar unas querys, búsquedas según valores, ordenaciones y la posibilidad de devolver tantas columnas como se quieran). Por supuesto con código fuente para que lo puedas ojear (o cambiar si fuera el caso)
Pues nada, espero que esto te ayude