作者:绿色风
分类:
时间:2022-08-18
浏览:197
楼主 嘉昆2011 |
问题陈述: 1,开始时间和结束时间分别按下列规则进行整理: 2,计算有效工作日的工作量,举例: 预期效果:
12-25 ET01.png
基础: Excel数据导入Access 日期时间的函数整理规范
难点: SQL中没有计算两个日期间有效工作日的函数,相当于Excel中的NETWORKDAYS函数
思路: 1,ADO+SQL处理 ADO处理SQL语句中的自定义函数,没有查到比较完善的例子,放弃
2,Access处理 利用自定义函数,采用 参照微软开发中心提供的函数,链接:
- http://msdn.microsoft.com/en-us/library/office/bb258196(v=office.12).aspx
- Function Work_Days(BegDate As Variant, EndDate As Variant) As Integer
- Dim WholeWeeks As Variant
- Dim DateCnt As Variant
- Dim EndDays As Integer
-
- On Error GoTo Err_Work_Days
- BegDate = DateValue(BegDate)
- EndDate = DateValue(EndDate)
- WholeWeeks = DateDiff("w", BegDate, EndDate)
- DateCnt = DateAdd("ww", WholeWeeks, BegDate)
- EndDays = 0
- Do While DateCnt <= EndDate
- If Format(DateCnt, "ddd") <> "Sun" And _
- Format(DateCnt, "ddd") <> "Sat" Then
- EndDays = EndDays + 1
- End If
- DateCnt = DateAdd("d", 1, DateCnt)
- Loop
- Work_Days = WholeWeeks * 5 + EndDays
- Exit Function
- Err_Work_Days:
- ' If either BegDate or EndDate is Null, return a zero
- ' to indicate that no workdays passed between the two dates.
- If Err.Number = 94 Then
- Work_Days = 0
- Exit Function
- Else
- ' If some other error occurs, provide a message.
- MsgBox "Error " & Err.Number & ": " & Err.Description
- End If
- End Function
附件:
ET 1226.rar
|
2楼 水星钓鱼 |
感谢分享 |
3楼 eliane_lei |
跟着昆哥学习! |
4楼 rongjun |
学习了! |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一