Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

日期自动分组

Lucas Wang  发表于:2015-04-08 19:09:01  
复制

求思路或者解决方案,在窗体控件中输入开始时间和结束时间,自动将这个时间段按年分组,并计算每个分组的总月数,可能描述的不清楚,比如开始日期2014-4-1,结束日期2016-4-1,则自动将这段时间分组并显示在对应控件,分组1,开始时间1:2014-4-1,结束时间1:2014-12-1,共8个月;分组2,开始时间2:2015-1-1,结束时间2:2015-12-1,共12个月;分组三,开始时间3:2016-1-1,结束时间3:2016-4-1,共4个月。给个思路也好,不甚感激,谢谢

 

Top
chinasa 发表于:2015-04-08 19:31:34

建立一个查询,一个字段为年月:FORMAT([RIQI],"YYYYMM"),另一个字段为年份:format([riqi],"yyyy")

然后你就可以用合计查询进行分组与计数了。



煮江品茶 发表于:2015-04-09 08:29:34
与分组没球关系。
假设你的窗体上存在三个控件,分别名曰:开始日期,结束日期,间隔月数。
则在间隔月数控件的控件来源属性中写:=datediff("m",nz([开始日期],date()),nz([结束日期],date())


西出阳关无故人 发表于:2015-04-09 16:59:28

看样子,lz是要输入任意两个日期后,得出这两个日期间垮了多少年,每年有几个月?

是基于表的查询还是?

 



西出阳关无故人 发表于:2015-04-09 17:34:09

如果不是基于表的查询,可以参考:

Private Sub Command4_Click()
Dim i
Dim str
If DateDiff("yyyy", Text0, Text2) = 0 Then
    str = DatePart("yyyy", Text0) & "年有" & DateDiff("m", Text0, Text2) + 1 & "个月"
Else
For i = 0 To DateDiff("yyyy", Text0, Text2)
   If DatePart("yyyy", DateAdd("yyyy", i, Text0)) = DatePart("yyyy", Text0) Then
     str = str & Chr(10) & DatePart("yyyy", DateAdd("yyyy", i, Text0)) & "年,有" & 12 - DatePart("m", Text0) + 1 & "个月,开始日期:" & Text0 & ",结束日期:" & DatePart("yyyy", Text0) & "-12-31"
   ElseIf DatePart("yyyy", DateAdd("yyyy", i, Text0)) = DatePart("yyyy", Text2) Then
     str = str & Chr(10) & DatePart("yyyy", DateAdd("yyyy", i, Text0)) & "年,有" & DatePart("m", Text2) & "个月,开始日期:" & DatePart("yyyy", DateAdd("yyyy", i, Text0)) & "-1-1" & ",结束日期:" & Text2
   Else
     str = str & Chr(10) & DatePart("yyyy", DateAdd("yyyy", i, Text0)) & "年,有" & "12个月,开始日期:" & DatePart("yyyy", DateAdd("yyyy", i, Text0)) & "-1-1" & ",结束日期:" & DatePart("yyyy", Text0) & "-12-31"
   End If
Next i
End If
MsgBox str
End Sub

 



西出阳关无故人 发表于:2015-04-09 17:48:21
Lucas Wang 发表于:2015-04-13 17:50:30
西出阳关无故人 你好,谢谢你的耐心解答,由于时间分组后的结果我仍需要用作计算,我想要的是结果直接放到不同的文本框内,比如计算完,第一个计算结果,如你的例子,2015年3月30放在第一组文本框开始时间1,2015年12月31日放在文本框结束时间1;2016年1月1日放在文本框开始时间2,2016年12月31日放在结束时间2,以此类推。非常感谢。

西出阳关无故人 发表于:2015-04-14 09:47:27
Lucas Wang 发表于:2015-04-14 10:40:47
西出阳关无故人 谢谢大大,我研究一下

总记录:8篇  页次:1/1 9 1 :