设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[模块/函数] 请老师帮助将这个查询转换成模块,谢谢

[复制链接]
跳转到指定楼层
1#
发表于 2010-2-19 14:15:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
FISHER_P月(工厂日历:2009-10-01~2010-09-30为1年)
dd: IIf([A]>=CDate("2009-10-1") And [A]<=CDate("2009-10-24"),"P1",IIf([A]>=CDate("2009-10-25") And [A]<=CDate("2009-11-21"),"P2",IIf([A]>=CDate("2009-11-22") And [A]<=CDate("2009-12-26"),"P3",IIf([A]>=CDate("2009-12-27") And [A]<=CDate("2010-01-23"),"P4",IIf([A]>=CDate("2010-01-24") And [A]<=CDate("2010-02-20"),"P5",IIf([A]>=CDate("2010-02-21") And [A]<=CDate("2010-03-27"),"P6",IIf([A]>=CDate("2010-03-28") And [A]<=CDate("2010-04-24"),"P7",IIf([A]>=CDate("2010-04-25") And [A]<=CDate("2010-05-22"),"P8",IIf([A]>=CDate("2010-05-23") And [A]<=CDate("2010-06-26"),"P9",IIf([A]>=CDate("2010-06-27") And [A]<=CDate("2010-07-24"),"P10",IIf([A]>=CDate("2010-07-25") And [A]<=CDate("2010-08-21"),"P11",IIf([A]>=CDate("2010-08-22") And [A]<=CDate("2010-09-30"),"P12"))))))))))))
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2010-2-19 22:17:08 | 只看该作者
这哪叫查询啊,这叫判断!
想重用就用函数,不叫模块,建议你去书店抱本书回来好好啃啃,再做开发,不然一知半解的人家跟你讲都很难!
函数定义如下:
Option Compare Database

Function GetP(A As Date) As String

    Dim Re As String
    If A >= CDate("2009-10-1") And A <= CDate("2009-10-24") Then
         Re = "P1"
    ElseIf A >= CDate("2009-10-25") And A <= CDate("2009-11-21") Then
        Re = "P2"
    ElseIf     then
   
    ----------
    Else

   End If
        
End Function
剩下的你自己添加吧,使用时只需引用:GetP(日期)。希望你能举一反三,弄通函数。
3#
 楼主| 发表于 2010-2-20 07:52:47 | 只看该作者
汗!菜鸟就是菜鸟,专家就是专家,需要反思,谢谢帮助
4#
 楼主| 发表于 2010-2-20 09:53:50 | 只看该作者
LeeTien 老师好像没有反应呀
5#
 楼主| 发表于 2010-2-20 10:16:09 | 只看该作者
LeeTien 老师我将例子上传了请帮助修改一下,谢谢

本帖子中包含更多资源

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

x
6#
 楼主| 发表于 2010-2-20 11:21:50 | 只看该作者
请大家给看看,挺着急的,谢谢
7#
发表于 2010-2-20 13:42:46 | 只看该作者
很值得学习
8#
发表于 2010-2-20 15:22:52 | 只看该作者
本帖最后由 zyp 于 2010-2-20 15:24 编辑

Function GetP(A As Date) As String

    Dim Re As String
    If A >= CDate("2009-10-1") And A <= CDate("2009-10-23") Then
         Re = "P1"
    ElseIf A >= CDate("2009-10-24") And A <= CDate("2009-11-20") Then
        Re = "P2"
    ElseIf A >= CDate("2009-11-21") And A <= CDate("2009-12-25") Then
        Re = "P3"
    ElseIf A >= CDate("2009-12-26") And A <= CDate("2010-01-22") Then
        Re = "P4"
    ElseIf A >= CDate("2010-01-23") And A <= CDate("2010-02-19") Then
        Re = "P5"
    ElseIf A >= CDate("2010-02-20") And A <= CDate("2010-03-26") Then
        Re = "P6"
    ElseIf A >= CDate("2010-03-27") And A <= CDate("2010-04-23") Then
        Re = "P7"
    ElseIf A >= CDate("2010-04-24") And A <= CDate("2010-05-21") Then
        Re = "P8"
    ElseIf A >= CDate("2010-05-22") And A <= CDate("2010-06-25") Then
        Re = "P9"
    ElseIf A >= CDate("2010-06-26") And A <= CDate("2010-07-23") Then
        Re = "P10"
    ElseIf A >= CDate("2010-07-24") And A <= CDate("2010-08-20") Then
        Re = "P11"
    ElseIf A >= CDate("2010-08-21") And A <= CDate("2010-09-30") Then
        Re = "P12"
    Else
    End If
   
    GetP = Re

End Function

关键是你将GetP=Re 这行写到if...end if中去了
9#
 楼主| 发表于 2010-2-20 15:47:42 | 只看该作者
谢谢帮助
10#
发表于 2010-2-21 15:14:50 | 只看该作者
Function yy(d As Date) As String
    yy= "P"& Month(d + 92)
End Function
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-8 20:52 , Processed in 0.103739 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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