设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 6748|回复: 10
打印 上一主题 下一主题

[帮助] 求助:如何通过vba修改当前字段

[复制链接]
跳转到指定楼层
1#
发表于 2015-1-12 10:27:29 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
我在日期字段的“更新前”事件加了判断,避免跨年输入日期出错,因为我平时输入日期,是没有输入年份的(主要是懒),直接输入“月-日”,到了一月份的时候,登记去年12月份的单据时,就有可能输入了今年12月份的日期了,所以我在“更新前”事件中判断这个日期是否有这样的错误,如果发现有这个错误,就把年份更正过来,代码如下:
me.日期=dateadd("yyyy",-1,me.日期)
但是调试就出错了,溢出错误,提示我不能对该字段在“更新前”这样赋值
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2015-1-12 10:45:55 | 显示全部楼层
盗梦 发表于 2015-1-12 10:30
首先,要确保 me.日期 是正确日期格式。其次,dateadd里面的第一个参数"y"一个就够

盗梦兄,日期格式没错的,而且我试过,dateadd里面的参数,只一个“y”是不行的,反正我的格式没错,用msgbox检验过了,现在提示的是:
运行时错误 ‘-2147352567(80020009)’:
为这个字段的beforeupdate 或 validationrule 属性设置的宏或函数将阻止 数据库 在字段中保存数据。
3#
 楼主| 发表于 2015-1-12 21:42:25 | 显示全部楼层
todaynew 发表于 2015-1-12 16:37
转换一下数据类型即可。
me.日期.value=dateadd("yyyy",-1,cdate(me.日期.value))

不是这个原因啦,我调试过,用以下语句
me.日期=date
依然提示这样的错误,关键是对字段本身不能通过更新前对该字段赋值,请各位大哥在帮帮忙
4#
 楼主| 发表于 2015-1-14 14:15:36 | 显示全部楼层
todaynew 发表于 2015-1-13 08:59
与更新前事件没求关系,在按钮的单击事件中写:

dim ssql as string

版主,我之前的设计是这样的:直接在该字段的“更新前”事件写下代码:
   If Me.日期 > DateAdd("m", 3, Date) Then                      '防止跨年录入的时候输错日期
      MsgBox "日期大于当天3个月,请核对输入日期", vbOKOnly, "提示框"
      Me.日期.Undo
      Cancel = -1
      Exit Sub
   End If
这样子的话,我只要填错日期,就会undo,让我重新输入,现在我是想能否在这个“更新前”的事件中更改一下语句,让它可以自动帮我纠正,但是只要在“日期”字段(不是什么按钮)的“更新前”事件中,只要重新赋值给“日期”字段,就会提示出错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-8 06:25 , Processed in 0.094906 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表