Ver la Versión Completa : Locate y access
magm2000
08-09-2005, 15:41:02
Hola:
Quiero hacer una busqueda sobre una tabla de access donde tengo un campo denominado 'fecha' que contiene la fecha y la hora.
Utilizo la siguiente sentencia:
qlst.Locate('fecha', mifechaabuscar.datetime, [loPartialKey]);
sin embargo no me encuentra nada, supongo que será un error de mi sentencia, como puedo hacer que me funcione.
Gracias y un saludo.
jmariano
08-09-2005, 16:33:37
En vez de pasar la fecha en sí, conviértela a una cadena:
qlst.Locate('fecha', DateToStr(mifechaabuscar.datetime), [loPartialKey]);
Saludos!
Neftali [Germán.Estévez]
08-09-2005, 17:06:14
Una pregunta:
¿Qué sentido tiene hacer una busqueda por Fecha/DateTime con [loPartialKey]?
magm2000
08-09-2005, 17:07:57
Gracias por responder tan pronto pero no me funciona:
// Leo la fecha de la tabla y la convierto a string
busca := fcaja.qlst.fieldbyname('fecha').asstring;
qlst.Locate('fecha', busca, [loPartialKey]);
// sin embargo este locate sobre la misma tabla si me funciona
qlst.Locate('numticket', 4, [loPartialKey]);
También he probado tu solución y nada:
mifechaabuscar: TDateTimePicker;
mifechaabuscar := fcaja.qlst.fieldbyname('fecha').asdatetime;
qlst.Locate('fecha', DateToStr(mifechaabuscar.datetime), [loPartialKey]);
Un saludo.
magm2000
08-09-2005, 17:10:12
La busqueda es parcial porque aunque guardo la fecha y la hora en access una de las busquedas que realizo consiste en buscar todos los registros que hay de una fecha (sin importar la hora) determinada.
Un saludo.
Neftali [Germán.Estévez]
08-09-2005, 17:22:48
Creo que el loPartialKey no va a funcionar con DateTime de forma que si coincide la fecha y no la hora te lo vaya a encontrar. Creo que si desear buscar por una fecha, ignorando la hora deberás utilizar un Beetwen o >= que hora 0:00:00 y <= que 23:59:59
Neomanar
09-09-2005, 17:16:20
Creo que en lugar de usar DateToStr deberías formatear la fecha con FormatDateTime, dado que te permite especificar el orden de día, mes y año, como sigue: FormatDateTime('MM/DD/YYYY',mifechaabuscar.datetime)
Es curioso, pero he visto que para filtrar una tabla es posible hacerlo con DateToStr y Delphi formatea la fecha de acuerdo al formato de la tabla. Sin embargo, no sucede lo mismo con el Locate. :confused:
Con respecto al [loPartialKey], la ayuda dice que sólo es aplicable a campos de tipo string. "If Options contains the loPartialKey setting, then Locate allows partial-string matching on strings in KeyValues. If Options is an empty set, or if KeyFields does not include any string fields, Options is ignored.
Espero te sirva. Saludos!:cool:
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.