首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

帮忙解决一下考勤时间横显的有关问题,多谢

2013-03-26 
帮忙解决一下考勤时间横显的问题,谢谢数据库中记录格式现在需要查询出来的格式为员工号打卡日期打卡时间1

帮忙解决一下考勤时间横显的问题,谢谢

数据库中记录格式
帮忙解决一下考勤时间横显的有关问题,多谢
现在需要查询出来的格式为
员工号   打卡日期        打卡时间1  打卡时间2  打卡时间3 ... 打卡时间N
107592  2012-05-23    00:01:02  00:01:08  00:10:00     
107592  2012-05-24    time1     time2      NULL         NULL 
107593  2012-05-23    00:01:12  00:01:18  00:10:10     
107593  2012-05-24    time1     time2      NULL         NULL 

就是按员工编号将查询时间段内的打卡时间按天列出来

给个思路也行
给段代码更好

谢谢


[解决办法]
这种没有任何限定的就用最直接的方法:

iRow = 0
iCol = 0
sLast工号 = ""
dtLast日期 = CDate(0)

Set rs = 查询("按工号、时间排序")
While Not rs.EOF
    If (rs("工号") <> sLast工号) Or (DateValue(rs("时间")) <> dtLast日期) Then
        sLast工号 = rs("工号")
        dtLast日期 = DateValue(rs("时间"))
        
        iRow = iRow + 1
        iCol = 3
        Cells(iRow, 1) = sLast工号
        Cells(iRow, 2) = dtLast日期
    Else
        iCol = iCol + 1
    End If
    Cells(iRow, iCol) = TimeValue(rs("时间"))

    rs.MoveNext
Wend

[解决办法]

这个设计有点毛病。假如有人恶作剧,一天内打了 100 次卡,你岂不是要出现 100 列数据。

我们原来的设计更复杂一些,在一个表中保存员工的某期间的上下班时间。分析流程将把一个员工全天的打卡记录分成若干个上班时间段和下部时间段。在同一上班时间段内,最后一次打卡记录有效;在同一下班时间段内,首次打卡有效。

因此,考勤记录的格式是固定的。

热点排行