access添加一个计算控件,显示系统年月,显示格式为:××××年××月 答案是一下哪一个?为什么?

控件来源=CStr(Year(Date()))+"年"+CStr(Year(Date()))+"月"
控件来源=Year(Date()) & "年" & Month(Date()) & "月"

全错
第一个月前面也是年份,第二个字符和时间不能相拼接,拼接的必须是字符,时间不行,ACCESS控件中是用单引号,不是双引号,双引号在VBA中用
year(日期变量) 意思是取他的年份
month(日期变量) 意思是取他的月份
day(日期变量) 意思是取他的某一天
Date() 意思是系统当前的日期
Date(变量) 意思是取变量的日期
Time() 意思是系统当前的时间
Time(变量) 意思是取变量的时间值
Str(变量) 意思是将他转换为字符型变量,前后各空一个字节
Cstr(变量) 意思是将他转换为自负型变量,不空字节位置
正确的写法:
控件来源=Cstr(Year(Date())) + '年' + Cstr(Month(Date())) + '月'
如系统时间是 2013-3-15 12:22:08
那他得出的就是:2013年3月
控件来源=Str(Year(Date())) + '年' + Str(Month(Date())) + '月'
这样写也不会错,但是效果不一样:
他的结果是:2013 年 3 月
空了字符。追问

我操作了一下,在access报表里添加计算控件,下面这个是对的,不过单引号和双引号都可以,+号和&号都可以。
控件来源=Cstr(Year(Date())) + '年' + Cstr(Month(Date())) + '月'

如果是下面这种,结果似乎是2013年 3月
控件来源=Str(Year(Date())) + '年' + Str(Month(Date())) + '月'

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-22
假如当前日期为2013-3-22
1) 控件来源=CStr(Year(Date()))+"年"+CStr(Year(Date()))+"月"
(可能楼主有点笔误,MONTH函数用错了YEAR)
显示:2013年2013月
更改为 控件来源=CStr(Year(Date()))+"年"+CStr(Month(Date()))+"月"
则会显示:2013年3月
2)控件来源=Year(Date()) & "年" & Month(Date()) & "月"
显示:2013年3月

上面两种写法都可以使得控件显示当前系统时间的年月,以第二种效率高一些(因为少用了两个Cstr函数)。
显示格式:××××年×月 (4位年份+ 1至2位月份)

如果想以固定两位月份显示当前系统时间的年月,可以这样写控件来源表达式:
控件来源=Year(Date()) & "年" & Right((Month(Date())+100),2) & "月"
或者使用Format函数更简单明了
控件来源=Format(Date(),"yyyy年mm月")
显示:2013年03月
显示格式:××××年××月 (4位年份+ 2位月份)

注意:
这里说的是以手动方式设置控件来源的方法。设计视图右击控件——属性——控件来源 将上面的表达式(例如:=Format(Date(),"yyyy年mm月") ) 复制黏贴到控件来源属性框里即可。

如果采用VBA代码设置控件来源,那么相应的表达式可能需要做一些调整。
例如:Me.Text4.ControlSource = "=Format(Date(), 'yyyy年mm月')"追问

控件来源=Year(Date()) & "年" & Month(Date()) & "月"
这种会出现错误。时间和字符不能拼接。

追答

我在access2003上面测试过没问题的。

在控件属性框里填写 =Year(Date()) & "年" & Month(Date()) & "月"

用代码设置才会有问题,请问你的版本和设置方式?

相似回答