Cita:
Empezado por ElDioni
Como os comentaba ayer he vuelto con el asunto esta mañana, muchas gracias a los dos por vuestro tiempo y vuestras propuestas, al final con la opción de Faust me funciona perfecto, al final se queda así:
Código Delphi [-]adoquery4.ParamCheck:=false; adoquery4.Close; adoquery4.SQL.Text:='SELECT * FROM log WHERE (destinatario=' + quotedstr(adoquery2.FieldByName('Usuario').AsString) + ' AND leido=false) AND ((fechaprog<#'+datetostr(date)+'#)OR(fechaprog=#'+ datetostr(date)+'# AND horaprog<=#'+timetostr(time)+'#))'; adoquery4.ExecSQL; adoquery4.Open;
He tenido que modificar la consulta porque ayer a las 13:00 si me sacaba los mensajes que tenían la fecha de ayer y las 12:00 en la hora, pero hoy a las 8:00 de la mañana, de la forma en que lo tenía puesto, no me sacaba los mensajes, aparte de eso todo genial.
He probado también tu opción Caral y me sigue apareciendo el mensaje de vacío, no se si tendrá que ver con la versión de access que yo tengo que es la  97  , de todas formas gracias de nuevo a los dos.
Un saludo.
|
Veo que al final de tu código pones:
Código Delphi
[-]adoquery4.ExecSQL;
adoquery4.Open;
No debería de ser, el funcionamiento de cada una es el siguiente:
ExecSQL se utiliza cuando tu SQL no regresa datos, p. ej. cuando es una inserción, modificación, etc.
Open se utiliza cuando tu consulta retorna un conjunto de datos, p. ej. un SELECT, la ejecución de un procedimiento almacenado que devuelva registros, etc.
Saludos... y toma en cuenta esto último.