Access快速选定日期范围值 窗体-沈军
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


Access快速选定日期范围值 窗体

发表时间:2013/7/18 23:50:35 评论(6) 浏览(14474)  评论 | 加入收藏 | 复制
   
摘 要:在ACCESS应用程序当中我们经常会进行日期范围选定或输入,以达到时期范围的数据统计与分析,本人也不例外,为了方便工作以及方便他人,把我用的这个功能窗体特调出来,供大家学习与参考。
正 文:

 

点击下载此示例Accdb格式       点击下载此示例mdb格式

 

本窗体中所有按钮单击事件均采用统一模块Select CASE 菜单选项方法实现,仅此特别!

Public Function sjClickAll()
    Dim sjCtn As String
    sjCtn = Me.ActiveControl.Name
    Select Case sjCtn
    Case "command117"     '上个月
        Me.开始日期 = CDate(DateAdd("m", -1, Format(Date, "yyyy-mm-1")))
        Me.结束日期 = CDate(DateAdd("m", 0, Format(Date, "yyyy-mm-1")) - 1)
    Case "Command118"     '下个月
        Me.开始日期 = CDate(DateAdd("m", 1, Format(Date, "yyyy-mm-1")))
        Me.结束日期 = CDate(DateAdd("m", 2, Format(Date, "yyyy-mm-1")) - 1)
    Case "Command119"    '当前月
        Me.开始日期 = CDate(DateAdd("m", 0, Format(Date, "yyyy-mm-1")))
        Me.结束日期 = CDate(DateAdd("m", 1, Format(Date, "yyyy-mm-1")) - 1)
    Case "Command120"    '前个月
        Me.开始日期 = CDate(DateAdd("m", -2, Format(Date, "yyyy-mm-1")))
        Me.结束日期 = CDate(DateAdd("m", -1, Format(Date, "yyyy-mm-1")) - 1)
    Case "Command124"    '前年
        Me.SJ年份 = CDate(DateAdd("YYYY", -1, Format(Date, "yyyy-1-1")) - 1)
        SJ年份_AfterUpdate
    Case "Command121"     '去年
        Me.SJ年份 = CDate(DateAdd("YYYY", 0, Format(Date, "yyyy-1-1")) - 1)
        SJ年份_AfterUpdate
    Case "Command122"     '明年
        Me.SJ年份 = CDate(DateAdd("YYYY", 2, Format(Date, "yyyy-1-1")) - 1)
        SJ年份_AfterUpdate
    Case "Command123"     '今年
        Me.SJ年份 = CDate(DateAdd("YYYY", 1, Format(Date, "yyyy-1-1")) - 1)
        SJ年份_AfterUpdate
    Case "Command128"     '上一个半年
        开始日期 = Date
        Me.开始日期 = CDate(DateAdd("m", 0, Format(开始日期, "yyyy-1-1")))
        Me.结束日期 = CDate(DateAdd("m", 6, Format(开始日期, "yyyy-1-1")) - 1)
    Case "Command125"    '下一个半年
        开始日期 = Date
        Me.开始日期 = CDate(DateAdd("m", 0, Format(开始日期, "yyyy-7-1")))
        Me.结束日期 = CDate(DateAdd("yyyy", 1, Format(开始日期, "yyyy-1-1")) - 1)
    Case "Command126"    '去年上半年
        开始日期 = Date
        Me.开始日期 = CDate(DateAdd("m", -12, Format(开始日期, "yyyy-1-1")))
        Me.结束日期 = CDate(DateAdd("m", 6, Format(开始日期, "yyyy-1-1")) - 1)
    Case "Command127"    '去年下半年
        开始日期 = Date
        Me.开始日期 = CDate(DateAdd("yyyy", -1, Format(开始日期, "yyyy-7-1")))
        Me.结束日期 = CDate(DateAdd("yyyy", 1, Format(开始日期, "yyyy-1-1")) - 1)
    Case "Command136"    '今年一季度
        开始日期 = Date
        Me.开始日期 = CDate(DateAdd("m", 0, Format(开始日期, "yyyy-1-1")))
        Me.结束日期 = CDate(DateAdd("m", 0, Format(开始日期, "yyyy-4-1")) - 1)
    Case "Command133"    '今年二季度
        开始日期 = Date
        Me.开始日期 = CDate(DateAdd("m", 0, Format(开始日期, "yyyy-4-1")))
        Me.结束日期 = CDate(DateAdd("m", 0, Format(开始日期, "yyyy-7-1")) - 1)
    Case "Command134"    '今年三季度
        开始日期 = Date
        Me.开始日期 = CDate(DateAdd("m", 0, Format(开始日期, "yyyy-7-1")))
        Me.结束日期 = CDate(DateAdd("m", 0, Format(开始日期, "yyyy-10-1")) - 1)
    Case "Command135"    '今年四季度
        开始日期 = Date
        Me.开始日期 = CDate(DateAdd("m", 0, Format(开始日期, "yyyy-10-1")))
        Me.结束日期 = CDate(DateAdd("yyyy", 1, Format(开始日期, "yyyy-1-1")) - 1)
    Case "Command140"    '去年一季度
        开始日期 = Date
        Me.开始日期 = CDate(DateAdd("yyyy", -1, Format(开始日期, "yyyy-1-1")))
        Me.结束日期 = CDate(DateAdd("y", 0, Format(开始日期, "yyyy-4-1")) - 1)
    Case "Command137"    '去年二季度
        开始日期 = Date
        Me.开始日期 = CDate(DateAdd("yyyy", -1, Format(开始日期, "yyyy-4-1")))
        Me.结束日期 = CDate(DateAdd("y", 0, Format(开始日期, "yyyy-7-1")) - 1)
    Case "Command138"    '去年三季度
        开始日期 = Date
        Me.开始日期 = CDate(DateAdd("yyyy", -1, Format(开始日期, "yyyy-7-1")))
        Me.结束日期 = CDate(DateAdd("y", 0, Format(开始日期, "yyyy-10-1")) - 1)
    Case "Command139"    '去年四季度
        开始日期 = Date
        Me.开始日期 = CDate(DateAdd("yyyy", -1, Format(开始日期, "yyyy-10-1")))
        Me.结束日期 = CDate(DateAdd("yyyy", 1, Format(开始日期, "yyyy-1-1")) - 1)
    Case "sjCommand141"    '向后快速选定月份
        If IsNull(Me.SJ月份) Then
            Me.SJ月份 = Date
        Else
            Me.SJ月份 = CDate(DateAdd("m", 2, Format(Me.SJ月份, "yyyy-mm-1")) - 1)
        End If
        SJ月份_AfterUpdate
    Case "sjCommand142"    '向前快速选定月份
        If IsNull(Me.SJ月份) Then
            Me.SJ月份 = Date
        Else
            Me.SJ月份 = CDate(DateAdd("m", 0, Format(Me.SJ月份, "yyyy-mm-1")) - 1)
        End If
        SJ月份_AfterUpdate
    Case "Command115"    '后一年
        If IsNull(Me.SJ年份) Then
            Me.SJ年份 = Date
        Else
            Me.SJ年份 = CDate(DateAdd("YYYY", 2, Format(Me.SJ年份, "yyyy-1-1")) - 1)
        End If
        SJ年份_AfterUpdate
    Case "Command116"    '前一年
        If IsNull(Me.SJ年份) Then
            Me.SJ年份 = Date
        Else
            Me.SJ年份 = CDate(DateAdd("YYYY", 0, Format(Me.SJ年份, "yyyy-1-1")) - 1)
        End If
        SJ年份_AfterUpdate
    Case "Command34"
        DoCmd.Close
    Case "Command106"
        '确定代码项目 可自行制作
        
    End Select
End Function





Access软件网交流QQ群(群号:198465573)
 
 相关文章
自定义日期控件实例  【十段  2008/6/13】
1个日期控件与多个日期文本框示例  【符鸿敏  2008/9/4】
access开发平台--找不到日期控件(DTPicker)的解决方...  【褚玉春  2009/1/16】
【access通用工具源码】自动定位输入框的日期选择器(acces...  【红尘如烟  2010/7/22】
常见问答
技术分类
相关资源
文章搜索
关于作者

沈军

文章分类

文章存档

友情链接