DateSerial 函数
对于指定的年、月、日,返回 Date 子类型的 Variant。
DateSerial(year, month, day)
Arguments
Year
从 100 到 9999 之间的数字或数值表达式。
Month
任意数值表达式。
Day
任意数值表达式。
说明
要指定日期,如 1991 年 12 月 31 日,DateSerial 函数中每个参数的取值范围都应该是可接受的;即日的取值应在 1 和 31 之间,月的取值应在 1 和 12 之间。但是,也可以使用表示某日之前或之后的年、月、日数目的数值表达式为每个参数指定相对日期。
以下样例中使用了数值表达式代替绝对日期。在这里,DateSerial 函数返回 1990 年 8 月 1 日之前十年 (1990 - 10) 零两个月 (8 - 2) 又一天 (1 - 1) 的日期:即 1980 年 5 月 31 日。
Dim MyDate1, MyDate2
MyDate1 = DateSerial(1970, 1, 1)
' Returns January 1, 1970.
MyDate2 = DateSerial(1990 - 10, 8 - 2, 1 - 1)
' Returns May 31, 1980.
对于 year 参数,若取值范围是从 0 到 99,则被解释为 1900 到 1999 年。对于此范围之外的 year 参数,则使用四位数字表示年份(例如 1800 年)。
当任何一个参数的取值超出可接受的范围时,则会适当地进位到下一个较大的时间单位。例如,如果指定了 35 天,则这个天数被解释成一个月加上多出来的日数,多出来的日数取决于其年份和月份。但是如果参数值超出 -32,768 到 32,767 的范围,或者由三个参数指定(无论是直接还是通过表达式指定)的日期超出了可以接受的日期范围,就会发生错误。
注意:
象这样的问题,你能上网的话最好去搜索,自己能上互联网却疏于动用"搜索"工具去主动寻找答案无论如何不能说是一件明智的事情,呵呵,尽管这样,还是帮你"百度"了一下,想更深入了解的话,自己继续"百度".
版主,看了下上面只是多了个ME.操作符,其他都一样的,应该不存在时间超范围的问题
写=dateserial(year(inputdate),1,1) 之所以就有结果,是因为这是在该控件的设计视图属性里的控件来源里写,而不是在事件过程里面写的,在控件来源里面写,实际上用的是表达式生成器,实际上是=dateserial(year([inputdate]),1,1),调用的是窗体里的字段[inputdate],它不识别me.inputdate
在事件过程里是用vba代码:如这么写:
Private Sub inputdate_AfterUpdate()
Me.Text2 = DateSerial(Year(Me.inputdate), 1, 1)
End Sub
如有需要可用cdate函数转化为日期
总记录:5篇 页次:1/1 9 1 :