这是需要用到的数据库表 使用的数据库是access 使用编程语言vba
实现的功能 是 计算 登陆时间
登陆时间计算方法 :数据的状态 有连接和断开 两种, 登陆时间的计算方法 是断开的时间 减去 连接的时间 但是要注意 状态上有出现连续 好几个连接 或者是断开 的现象
这就需要判断咯。 这个是 一对一的 连接和断开 才管用
比如:
上面这个是连着两个 连接 可以根据时间 来判断 看断开的时间 是18:31:50 找比这个时间小的 但是要最接近这个时间的连接时间18:28:42 然后用 断开的时间减去连接的时间。
最终目的 是 求出 某个时间段里面的登陆时间是多少? 此问题 周一结束 各位大虾 赶早哦 100 哦 不过我要 整个过程 还要有注释哦...要是详细了 可追加20-50
'断开时间作为一个分界线 conn '这些数据库基本连接对象自己会写吧? Sub Main() dim sql,rs sql = "select * from ClientLoginLog where StateFlag='断开' order by RegTime ASC" set rs = conn.execute(sql) while not rs.eof dim EndTime '用于记录断开时间 dim StartTime '用于记录开始时间 EndTime = rs("RegTime") StartTime = GetStartTime(EndTime) if StartTime<>"" then '输出该时间段 Debug.print "连接时间:"&StartTime&" 断开时间:"&EndTime&" 持续时长:"&DateDiff("s",CDate(EndTime),CDate(StartTime)) end if rs.movenext wend '释放连接 rs.close set rs = nothing conn.close set conn = nothing End Sub Function GetStartTime(EndTime) dim rs,starttime GetStartTime = "" set rs = conn.Execute("SELECT TOP 1 * FROM [ClientLoginLog] WHERE RegTime<'"&EndTime&"' And StateFlag='连接'" order by RegTime DESC) '取出最近一条连接记录 if not rs.eof then starttime = rs("RegTime") '判断此条连接记录是否有效,中间不能包含断开记录 set rs = conn.execute("SELECT Count(*) AS CT FROM [ClientLoginLog] WHERE RegTime<'"&EndTime&"' And RegTime>'"&StartTime&"'" ") if rs("CT")=0 then GetStartTime = starttime end if end if End Function