PDA

Ver la Versión Completa : Busqueda....


TKW04
29-08-2007, 19:17:15
Hola como estan estoy trabajando en un pequeño Programa, que pasa me encontrado con la necesidad de hacer una busqueda, que funcione haci el usuario digita el codigo del cliente y mientras va escribiendo vayan a pareciendo los posibles clientes,(Una especie de Busqueda parcial) el problema que tengo es que cuando ahi al escrito en el EDIT del codigo y doy doble clic en el me carga el registro mas proximo a el es decir


Codigo: Hp1asd2007

y existe otro codigo

Codigo: Hp0asd2007

si trato de cargar el codigo de arriba no me carga


lo que pido es que me digan como crear una busqueda ya sea parcial o no qeu trabaje rapida y bien aunque tenga que hacerla entera de nuevo
o modificar la que tengo....

toy usando la bd en SQL server 2000 Delphi 7:confused:

TKW04
29-08-2007, 19:24:34
procedure Tfrmmenu.DBGrid2DblClick(Sender: TObject);
begin
ADOTable1.close;
DBEdit4.Text:=Busestudiantescodigo.Value;
ADOTable1.Open;
ADOTable1.Refresh;
Scroll_Nuevo.Visible:=true;
lbsol.Visible:=true;
DBComboBox6.Visible:=true;
Label4.Visible:=true;
DBComboBox7.Visible:=True;
ADOTable1.Edit;
Scroll_busquda.Visible:=false;
end;
end

este codigo es el qeu tengo en el evento doble click de mi dbgrid

donde Busestudiantescodigo es un adoquery

Fumaxclamp
29-08-2007, 19:37:03
no te entendi muy bien pero haver si esto te ayuda

primero para la busqueda parcial en el evento OnChange de tu edit tienes que poner el codigo para que cuando vallas escribiendo se vallan delimitando los registros que quieras para esto yo supongo que utilizas un componente query y un dbgrid ok en el compoennete queri la sentencia que va sa necesitar es con un like, algo asi

select * from <Table> where <campo> like '%<edit>%'

con esto cada vez escribas una letra en tu edit el comando lije va a buscarla que este en alguna parte de la cadena del campo y con esot tines la busqueda que deseas asu su ves en el dbgrid ya va a estar delimitada tu busqueda y al darle click o doble click en alguno de los reistros delimitados eutomaticamente el puntero se situa ahi y ya pudes hacer con el no que mas te comvenga.

espero y esto te sirva

saludos

Chris
29-08-2007, 20:02:56
mira, desactivando y activando la tabla o SQL por cada letra, más bien la función de búsqueda de tu aplicación daría miedo de utilizar, por lo que dilataría el componente en abrir la tabla.

Mejor aplica este ejemplo que hace mucho encontré en about.com
http://delphi.about.com/od/usedbvcl/l/aa050499.htm

es muy bueno (está en inglés). Solamente necesitas tener un índice para el campo que buscas.