设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2496|回复: 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:37:47 | 只看该作者
贴出的代码部分乱码,请修正一下
3#
 楼主| 发表于 2008-3-25 14:50:07 | 只看该作者
这个乱码是引用holiday & workday两个表的日期字符段名称,对整个代码阅读没有影响,请帮忙解决一下我提的问题
4#
 楼主| 发表于 2008-3-25 15:34:42 | 只看该作者
[:30] 有没有高人阿  麻烦指点阿  急!
5#
发表于 2008-3-25 15:55:50 | 只看该作者
因为根本就没查到数据,返回值为0, newNetWorkDays = IntDays - 1
上面语句查询天为0时 返回结果为-1
6#
发表于 2008-3-25 15:56:33 | 只看该作者
你举个例子就行吧
7#
 楼主| 发表于 2008-3-25 15:58:12 | 只看该作者
那么DateCnt >EndDays的代码应该怎么补充进去呢   高手!
8#
发表于 2008-3-25 16:05:44 | 只看该作者
把参数改为:
Do While DateCnt < EndDays

datecnt是最小的日期,enddays的最大的日期
9#
发表于 2008-3-25 16:06:33 | 只看该作者
同时删除下面这句话
newNetWorkDays = IntDays - 1
10#
发表于 2008-3-25 16:08:01 | 只看该作者
如果看不明白,或者返回错误结果的,建议上传例子
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-2 23:36 , Processed in 0.084461 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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