access 2007 有一个员工资料窗体绑定了员工表,在窗体里还有一个文本框,用于显示工龄

我根据系统时间和入职日期(日期从窗体文本框获取,年,月,日是分开的,不是一个日期格式的数据)写了一个代码,在该文本框中显示工龄,但是不知道把代码放在哪里,才能使得工龄会随着记录的移动(就是不同员工)而相应变化,代码如下,请帮忙
Dim a, b, c, d, e, f As Integer
a = Day(Date)
b = Month(Date)
c = Year(Date)
d = Forms!员工管理!入职日
e = Forms!员工管理!入职月
f = Forms!员工管理!入职年
If a >= d Then
a = a - d
If b >= e Then
b = b - e
c = c - f
Else
b = b + 12 - e
c = c - 1 - e
End If
Else
a = a + 30 - d
If b - 1 >= e Then
b = b - 1 - e
c = c - f
Else
b = b + 11 - e
c = c - 1 - f
End If
End If
Me.Text16 = c & "年" & b & "月" & a & "日"
或者有什么办法可以做到计算工龄啊,请高手出来帮忙啊

很奇怪!入职日期怎么不是用日期时间格式???
如果不是日期格式,还是用DateSerial()函数把它转化为日期格式为好。

DateSerial(year, month, day)
返回指定年、月和日的变量型(日期型)。
year必选。Integer。表示 100 和 9999(含)之间的数字或数值表达式
month必选。整型。任何数值表达式。
day必选。整型。任何数值表达式。

然后,“工龄”文本框的属性“数据源”中输入=datediff("yyyy",dateserial(Forms!员工管理!入职年,Forms!员工管理!入职月,Forms!员工管理!入职日),date())

DateDiff(interval, date1, date2 )
返回变量型(长型),指定两个指定的日期之间的时间间隔数。
interval必选。该表达式为用于计算 date1 和 date2 之间的差的时间间隔。"yyyy"返回年;"m"返回月;"d"返回天;"ww"返回周;"q"返回季度;
date1, date2必选。变量型(日期型)。表示两个要用于计算的日期追问

谢谢您的指点
我还有一个问你想请教您,我对access的宏和VBA编程,像函数这些都知之甚少,有没有关于access 的宏 ,vba编程以和函数及用法的提高教材,专门讲这两块内容的,最好有一个较复杂一点完整的数据库系统实例,基础的就不用了,我也找了好久,都是入门的,没什么用,它们的实例包括图书借阅实例都做得很简单,劳烦推荐有参考价值的书,谢谢啦,我知道您是高手,想必您有好的数据库系统实例,方便的话传我学习学习。

追答

《access 2007开发指南》,美国人巴尔特(Alison Balter)编著,是中文版本的,谢晖、许伟翻译,人民邮电出版社出版,99.00元;这是一本提高教材,至少达到中级水平才能比较理解里面的内容,但它对基础部分也有一些涉及,我从中收获相当大,看了这本书才知道access还有如此广的功能。这本书卓越亚马逊网站仍有售。关于函数的问题,其实在access的帮助里已有详细的论述,可参考,我相当多的知识来自于帮助。还要说的是,书中附的大量实例,除书中有印刷相应的代码外,还可从人民邮电出版社网站上下载,下载的是access界面的,包含表、窗体、查询、报表等各种对象、代码等等,但,现在好像人民邮电网已经不能下载,如果您有需要我可以发给你,我的QQ:194748742 。

温馨提示:答案为网友推荐,仅供参考
相似回答