|
本帖最后由 roych 于 2012-9-24 00:26 编辑
这个估计得需要ADO。。。(注意,第一个查询,也就是“时间查询”不能分类汇总,否则ADO自定义查询函数就白用了)貌似多定义了一个Date2~~~- Function getValue(MyDate As Date) As Long
- Dim rst As New ADODB.Recordset
- Dim i As Long, s As Long
- Dim date1 As Date, date2 As Date
- Dim MyItem As String
- '注意,记录集排序很重要。
- rst.Open "select * from sheet1 order by 故障名称", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
- date1 = rst(1)
- MyItem = rst(2)
- For i = 1 To rst.RecordCount
- '判断第一个时间值和当前时间之差是否在5分钟内
- If DateDiff("n", MyDate, rst(1)) <= 5 Then
- '如果是同一个故障,则开始计数
- If rst(2) = MyItem Then
- s = s + 1
- Else
- '否则就更新故障名称再计数。需要注意的是,这部分会将前面已经计数的进行累计。
- MyItem = rst(2)
- s = s + 1
- End If
- End If
- rst.MoveNext
- Next
- getValue = s
- rst.Close
- End Function
复制代码
在这里我还是说两句题外话吧:
1、周末的帖子可能不会马上得到回复的,请您耐心些许。如果周一以后仍未有回复的话,再顶起或者重新发帖。——事实上我一般更喜欢看新发表的帖子。
2、发帖时尽可能把问题说清楚,必要的话,请上传实例附件。毕竟不是谁都有时间就您的问题来做一个例子的。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|