以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何输入固定月日的日期? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=83783) |
-- 作者:hyowl -- 发布时间:2016/4/16 16:56:00 -- 如何输入固定月日的日期? 老师好! 如图,有两列数据,第一列是入学年份,因为入学总是9月1日,所以要求输入年份后,后面的月日能自动为09-01,如输入2011,则自动出现2011-09-01,另外,毕业日期为三年后的6月1日,那么输入入学日期后自动得到毕业日期。如入学日期是2011-09-01,则毕业日期自动填入:2014-06-01?
|
-- 作者:Hyphen -- 发布时间:2016/4/16 17:40:00 -- KeyUpEdit事件 If e.Text > "" Then StatusBar.Message2 = e.Text If e.Text.length = 5 Then e.Text = e.Text & "09-01" Sendkeys.Send("{TAB}") End If End If DataColChanged事件 If e.DataCol.Name = "入学日期" Then \'如果是已结帐列的内容变动 e.DataRow("毕业日期") = new Date(e.NewValue.AddYears(3).year,6,1) End If |
-- 作者:hyowl -- 发布时间:2016/4/17 20:38:00 -- 谢谢老师指点!我稍作了修改,这样对吗? If e.Col.Name="入学时间" And e.Text > "" Then ’这里加了这一句,否则所有单元格的输入都自动生成“09-01”了 StatusBar.Message2 = e.Text If e.Text.length = 5 Then e.Text = e.Text & "09-01" Sendkeys.Send("{TAB}") End If End If If e.DataCol.Name = "入学时间" Then \'如果是入学时间列的内容变动 If e.DataRow.Isnull("入学时间") Then e.DataRow("毕业时间")=Nothing Else ‘这里也加了一句,否则把“入学时间”删除时会报错。 e.DataRow("毕业时间") = new Date(e.NewValue.AddYears(3).year,6,1) End If End If |
-- 作者:鲁吉 -- 发布时间:2016/4/17 21:25:00 -- 看似正确,你测试下吧 |
-- 作者:大红袍 -- 发布时间:2016/4/17 21:46:00 -- 3楼代码没问题,如果报错,贴出对应的错误。 |