Access交流中心

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

[5分]如何自动生成上个月报表

邹  发表于:2015-05-05 08:16:00  
复制

我是用date()-1来生成昨天的报表。我想生成上月(整个月份的)的用什么呢?
想自动生成上个月月报表在“日期”字段条件里写什么呢?

 

Top
chinasa 发表于:2015-05-05 08:22:59
Format(Date(),"mm")-1

邹 发表于:2015-05-05 09:12:55
谢谢您的帮助,我把这个复制到“日期”字段下的条件中,运行后没有数据

红尘如烟 发表于:2015-05-05 09:16:11
chinasa 的答案返回的不是日期类型,而是月份 01,02,03这样,所以你是不能直接作为条件的,要用DateAdd函数才行:
=DateAdd("m",  -1, Date())


邹 发表于:2015-05-05 09:19:49
谢谢,我想可能是我的表述有问题,我想生成的是整个月报表。比如5月我想生成4月份的报表。不过很感谢红尘如烟

chinasa 发表于:2015-05-05 09:31:59

字段:format([日期],"mm")

条件:Format(Date(),"mm")-1

也就是你先在查询中把日期字段转换成月份,然后再在查询条件中输入条件。



chinasa 发表于:2015-05-05 10:04:23
红尘的方法应该更好。

邹 发表于:2015-05-05 10:16:06
红尘老师的方法返回的是上个月今天的数据

yxm 发表于:2015-05-05 10:42:21

新建利用SQL语句查询,

例:select * from   表/查询 

    where 日期 between   起始日期  and 截止日期;

     查出来的结果保存-----》报表向导生成报表 ,就可以了。

你试一下。 sql语句根据实际情况写吧。                      



红尘如烟 发表于:2015-05-05 10:49:07

如果你是要取上个月的日期作为查询条件的话,写成这样:

WHERE 日期字段 >= DateSerial(Year(Date()), Month(Date())-1, 1) AND 日期字段 < DateSerial(Year(Date()), Month(Date()), 1)

比如现在是2015-5-5,这里最终的条件会是:

WHERE 日期字段 >= #2015-4-1# AND 日期字段 < #2015-5-1#

注意:截止日期写成小于本月第1天,而不是小于等于上一个月最后1天,是为了兼容日期中含有时间的情况。否则像是<=#2015-4-30#,对于含有时间的日期如 2015-4-3 8:30:00这样的就查不出来



flying 发表于:2015-05-05 15:41:42

我这样写取得上月的第1天和最后1天:

    Case "上月"
        Me.txt开始日期 = DateSerial(Year(Date), Month(Date) - 1, 1)
        Me.txt截止日期 = DateSerial(Year(Date), Month(Date), 1) - 1



风行 发表于:2015-05-06 09:45:12


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