Hola, estoy trabajando con una BD de Access 2007 en Delphi 7. Necesito una funcion busca, la cual me devuelva verdadero si encuentra un determinado valor. Los criterios de busqueda son por Codigo, DNI, y por Nombre.
El codigo es el siguiente:
Código:
type
Tclasepropietario = class (Tclasepersona)
codigo_titular: Integer;
sexo: string;
fecha_modificacion: TDate;
fecha_desde: TDate;
Procedure grabardatos;
function busqueda (dato:string;opcion:Integer):Boolean;
end;
Implementation
function Tclasepropietario.busqueda(dato: string; opcion: Integer): Boolean;
begin
ADOTable1.Filtered := True;
case opcion of
1: begin
ADOTable1.Filter:= 'CODIGO_TITULAR LIKE '''+'%'+dato+'%''';
if (ADOTable1.RecordCount > 0)
then
begin
Result:=True;
end
else;
begin
Result:=False;
end;
end;
2: begin
ADOTable1.Filter:='DNI LIKE '+dato+'';
if (ADOTable1.RecordCount > 0)
then
begin
Result:=True;
end
else;
begin
Result:=False;
end;
end;
3: begin
ADOTable1.Filter:='APELLIDO_NOMBRES LIKE '''+dato+'*''';
if (ADOTable1.RecordCount > 0)
then
begin
busqueda:=True;
end
else;
begin
busqueda:=False;
end;
end;
end;
end;
En donde dato seria por ejemplo un edit, el cual posee segun lo que vaya a buscar, y opcion seria un "case" que manejo internamente para seleccionar que tipo de busqueda quiero realizar. Pues bien, a todo esto mi problema es que, en el caso del DNI y del CODIGO, en la tabla estan cargados como numeros y aca el parametro dato es string, y cuando por ejemplo realizo un alta de Propietarios necesito saber si el DNI ingresado ya esta cargado o no, pero al momento de llamar a la funcion me salta un error de "No se pudo abrir el filtro" mi duda es ¿existe alguna forma de que la consulta sql me convierta a numero el string "dato" y como seria?