███Delphi access数据库 提醒功能怎么实现?请高手赐教,小弟不甚感激!████

wallyhost 2012-05-11 01:29:39
提醒功能怎么实现?

Access数据库字段和内容如下:
序号 日期 提醒内容
1 2012-6-20 还书
2 2012-7-10 请客吃饭
3 2012-7-2 买米
4 2012-5-30 交水电费

要求:
1)当系统日期在日期字段前5天跳出提醒窗口,并显示该行的提醒内容。
2)同时该行或“日期”单元格的背景在即将到期的5天内变成黄色,过期变成红色。
...全文
248 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
terry三 2012-05-12
  • 打赏
  • 举报
回复
對,定時器+條件查詢
wallyhost 2012-05-11
  • 打赏
  • 举报
回复
继续等完整的代码。可以付费。请QQ。
gzmitch 2012-05-11
  • 打赏
  • 举报
回复
楼主。很简单的东西。不用付费吧。呵呵。你研究下数据库查询,就能正确提示了。
wallyhost 2012-05-11
  • 打赏
  • 举报
回复
在线等代码,OK的话,可以付费。
mhhaifeng 2012-05-11
  • 打赏
  • 举报
回复
是程序运行的时候提醒吧
设一个全局变量 iISReminder
每当程序刚运行时 获取系统时间 与你要查数据库记录的时间
取时间差
如果 差5天以内 bISReminder =1
过期 =2 正常=0
然后根据 bISReminder 值 显示提示信息 或 设置显示的单元格的颜色

如果是多条信息 即根据需要 设置个全局数组保存各个 bIsReminder值
wallyhost 2012-05-11
  • 打赏
  • 举报
回复
能提供代码吗,在线等。
shuihan20e 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
提醒功能怎么实现?

Access数据库字段和内容如下:
序号 日期 提醒内容
1 2012-6-20 还书
2 2012-7-10 请客吃饭
3 2012-7-2 买米
4 2012-5-30 交水电费

要求:
1)当系统日期在日期字段前5天跳出提醒窗口,并显示该行的提醒内容。
2)同时该行或“日期”单元格的背景在即将到期的5天内变成黄色,过期变成红色。
[/Quote]
1.用SQL中dateadd函数实现
2.假如你用的是DBGRID,在DrawColumnCell事件中处理,来实现背景黄或红
wallyhost 2012-05-11
  • 打赏
  • 举报
回复
楼上好人能提供下代码吗,我技能不精,谢谢了。
kaikai_kk 2012-05-11
  • 打赏
  • 举报
回复
很简单的东西,用Timer即可

你的数据是按天来提示的,所以
登陆软件时,查询1次;其它时候计时,Trimer到0点时再查询1次,没必要每秒都去查询
wallyhost 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

在timer空间写下大概是如下代码
//读取数据库,
Query2.close;
Query2.SQL.Clear;
Query2.SQL.add('select 日期,提醒内容 from 表格名称);
Query2.Prepared;
Query2.Open;
while not Query2.Eof do
begin
if strtodate(trim(Query2.……
[/Quote]


我是ADO连接的,不是BDE,不是parodox数据库,是Access数据库。TQuery1无法连接.mdb数据库。调试失败。
shuihan20e 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

如果是本地存储就TIMER呢,如果是服务器就心跳,当然能主动推送是最好了(最难的吧)。
[/Quote]

这和心跳有啥关系,如果服务器来轮询,那还不把服务器搞死?
鐵蛋 2012-05-11
  • 打赏
  • 举报
回复
这个要看你的程序是一直运行着,还是每天都会打开多次,如果是一直运行着的话就用类似定时器的方式,如果只每天都要打开多次的话,那就在每次打开某个窗口的时候查询一下,如果又满足要求的结果,就做个提示窗口显示出来,这样不至于每时每刻都要OnTime事件去查询。
gzmitch 2012-05-11
  • 打赏
  • 举报
回复
在timer空间写下大概是如下代码
//读取数据库,
Query2.close;
Query2.SQL.Clear;
Query2.SQL.add('select 日期,提醒内容 from 表格名称);
Query2.Prepared;
Query2.Open;
while not Query2.Eof do
begin
if strtodate(trim(Query2.Fields[0].AsString))>date(now-5) then
begin
showmessage(trim(Query2.Fields[1].AsString));//显示该行提醒内容
不知道你用的是什么表格,在这行改变此表格此行的颜色
end;

思路是这样,具体代码你再测试下
Query2.Next;
end;
shuihan20e 2012-05-11
  • 打赏
  • 举报
回复
定时器,刷数据库
wallyhost 2012-05-11
  • 打赏
  • 举报
回复
我的QQ:898225836
wallyhost 2012-05-11
  • 打赏
  • 举报
回复
能否将代码写下,灰常感谢!实在不行也可付费。高手赐教啦。
山东蓝鸟贵薪 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
如果是本地存储就TIMER呢,如果是服务器就心跳,当然能主动推送是最好了(最难的吧)。
[/Quote]
ACCESS也只能在本机实现的,再加上一个TIMER事件获取“当前日期”再在数据库中查询这个日期
如果有就显示到相应控件(label1)中即可
要是想以服务器方式读取的话,那就尽量用MSSQL,MYSQL,ORACLE之类的网络数据库了
wallyhost 2012-05-11
  • 打赏
  • 举报
回复
是本地的,能否给出代码呢,本人刚入道。谢谢!
wgxis 2012-05-11
  • 打赏
  • 举报
回复
如果是本地存储就TIMER呢,如果是服务器就心跳,当然能主动推送是最好了(最难的吧)。

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧