USERINFO 表
USERID NAME deptid
001 张三 1
002 李斯 1
CHECKINOUT表
001 2011-07-01 7:59:28
001 2011-07-01 8:00:21
001 2011-07-01 12:00:03
001 2011-07-01 12:01:03
001 2011-07-01 13:25:04
002 2011-07-01 7:55:00
002 2011-07-01 7:58:00
DEPARTMENTS
deptid USERID
1 生产部
我想用VB
直接连接ado 在datagrid 里面显示成
初期用过datediff(n,a.checktime,b.checktime)>15 就是说时间范围在15分钟内不要
也考虑用groud by 处理 但是都没好办法.请高手们给点思路 或者给点代码. 小弟不胜感激.代码 最好是vb +access
用sql的存储处理也是可以,但是我只有access的表
很感谢你,在SQL里面也用过这个方法,但在access用这个不可行,它表里面还是有这些主键.我在access里面的查询视图里面来查也不可以,希望能提供个可以用的办法
EXACTID USERID CHECKTIME
1 1 2011-07-01 7:59:28
2 1 2011-07-01 12:00:28
3 1 2011-07-01 13:25:28
4 1 2011-07-01 17:35:28
5 1 2011-07-01 18:25:28
6 1 2011-07-01 20:35:28
USERID Name
1 张B
2 张A
DEPTID DEPTNAME SUPDEPTID
3 管理部 1
在ACCESS中新建一个查询,粘贴上述语句,把ID修改为EXACTID,把CHECKINOUT修改为CHECKTIME(仅限于修改字段名部分,表名不用改),然后看一下查询结果。
办法是不错,但是记录是直接采集 已经保存好了,除非是做一个过程 把这个记录重新保存到另一个表 那还需要update 还要很多啊
追答那这样 程序里添加一个过程 使用两个记录集 每次需要调用数据前 调用该过程就可以了 大概代码如下
private sub Myclear
dim rs1,rs2 '设置两个记录集
sign1:
set rs1=cn.execute("select * from CHECKINOUT")
do until rs1.eof
set rs2=cn.execute("select * from CHECKINOUT where checktime#" & rs.fields("checktime") & "#")
if not rs2.eof then '判断此十五分钟内是否有记录 如果有记录就删除这些记录 并跳转到书签sign1 重新设置rs1记录集
cn.execute("delete * from CHECKINOUT where checktime<=#" & dateadd("n",15,rs.fields("checktime")) & "# and userid='" & rs.fields("userid") & "'")
goto sign1
end if
rs1.movenext
loop
end sub
随机产生
追答你这个不是实际应用吗?仅仅是随机产生的数据……?
追问也可以这样说,就是员工什么时候去打 就什么时候有记录