Office中国论坛/Access中国论坛

标题: 请老师帮助将这个查询转换成模块,谢谢 [打印本页]

作者: yanwei82123300    时间: 2010-1-21 13:46
标题: 请老师帮助将这个查询转换成模块,谢谢
REQD_WEEK: CDbl(IIf([REQD_DATE]>#2008-9-30# And [REQD_DATE]<#2009-1-1#,Str(Format((200848+13+Format([REQD_DATE],"ww")))),IIf([REQD_DATE]>=#2009-1-1# And [REQD_DATE]<#2009-10-1#,Str(Format((200900+13+Format([REQD_DATE],"ww")))),IIf([REQD_DATE]>#2009-9-30# And [REQD_DATE]<#2010-1-1#,Str(Format((200900+61+Format([REQD_DATE],"ww")))),IIf([REQD_DATE]>=#2010-1-1# And [REQD_DATE]<#2010-10-1#,Str(Format((201000+13+Format([REQD_DATE],"ww")))),IIf([REQD_DATE]>=#2010-10-1# And [REQD_DATE]<#2011-1-1#,Str(Format((201000+61+Format([REQD_DATE],"ww")))),IIf([REQD_DATE]>=#2011-1-1# And [REQD_DATE]<#2011-10-1#,Str(Format((201100+13+Format([REQD_DATE],"ww")))),Str(Format((201100+61+Format([REQD_DATE],"ww")))))))))))
作者: yanwei82123300    时间: 2010-1-21 13:47
由于我公司是将每年的10-1为工厂新年,到下一年的9-30为年底
作者: 咱家是猫    时间: 2010-1-21 14:44
本帖最后由 咱家是猫 于 2010-1-21 14:47 编辑

你试下下面的对不对
  1. Function GetDate(d As Date) As Double

  2. Dim s
  3. Dim td As Date
  4. td = d + (DateSerial(Year(d), 12, 31) - DateSerial(Year(d), 9, 1))
  5. s = Year(td) & Format(Format(td, "ww"), "00")
  6. GetDate = CDbl(s)

  7. End Function
复制代码

作者: yanwei82123300    时间: 2010-1-21 16:20
谢谢猫老师,请帮助解释一下可以吗?
作者: 咱家是猫    时间: 2010-1-22 12:49
应该再简练些
其实就是一句

  1. Function GetDate(d As Date) As String
  2.     GetDate = Year(d + 92) & Format(Format(d + 92, "ww"), "00")
  3. End Function

复制代码

这个日期你想得有点太绕弯了.其实就是把原日期加多92天(10月11月12月三个月的总天数)来计算.




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3