设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2270|回复: 12
打印 上一主题 下一主题

[模块/函数] 请教这个workdays的代码

[复制链接]
跳转到指定楼层
1#
发表于 2008-3-25 13:51:20 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
Function newNetWorkDays(BegDate As Date, EndDate As Date) As Integer

Dim DateCnt As Date
Dim EndDays As Date
Dim IntDays As Integer

DateCnt = DateValue(BegDate)

EndDays = DateValue(EndDate)

IntDays = 0

        
        Do While DateCnt <= EndDays
        
        
          If Format((IsNull(DLookup("id", "holiday", "&ETH;&Yacute;&Iuml;&cent;&Egrave;&Otilde;&AElig;&Uacute;=#" & DateCnt & "#"))) _
               And Format(DateCnt, "ddd") <> "Sun" And Format(DateCnt, "ddd") <> "Sat") Or _
              Format(Not IsNull(DLookup("id", "workday", "&frac14;&Oacute;°à&Egrave;&Otilde;&AElig;&Uacute;=#" & DateCnt & "#"))) Then
        
               IntDays = IntDays + 1

          End If

    DateCnt = DateAdd("d", 1, DateCnt)
   
      
   Loop
   

newNetWorkDays = IntDays - 1

End Function


这个代码能够计算出如果BegDate小于或等于EndDate的相差工作日,但是如果大于,则计算出的所有值都是-1,请问能够将负值也体现出差别多少工作日吗,而不是全部都显示-1
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2008-3-25 14:50:07 | 显示全部楼层
这个乱码是引用holiday & workday两个表的日期字符段名称,对整个代码阅读没有影响,请帮忙解决一下我提的问题
3#
 楼主| 发表于 2008-3-25 15:34:42 | 显示全部楼层
[:30] 有没有高人阿  麻烦指点阿  急!
4#
 楼主| 发表于 2008-3-25 15:58:12 | 显示全部楼层
那么DateCnt >EndDays的代码应该怎么补充进去呢   高手!
5#
 楼主| 发表于 2008-3-25 16:35:31 | 显示全部楼层
请看附件里的query1

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-23 14:14 , Processed in 0.112091 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表