设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主:
打印 上一主题 下一主题

[窗体] 你为该字段输入的值无效——其错误号是多少[已解决]

[复制链接]
11#
 楼主| 发表于 2011-2-11 20:37:58 | 只看该作者
todaynew 发表于 2011-2-11 20:27
不知道,对错误号没有研究。因为我原则是不给同志们犯错误的机会。

我是觉得系统自带的错误提示内容太生硬,所以想屏蔽,然后自己添加错误提示。

点击这里给我发消息

12#
发表于 2011-2-12 11:19:01 | 只看该作者
本帖最后由 t小宝 于 2011-2-12 11:19 编辑

看了3楼的代码就应该想到错误怎么取
Private Sub Form_Error(DataErr As Integer, Response As Integer)
    Msgbox DataErr
End Sub
13#
发表于 2011-2-11 21:56:44 | 只看该作者
简 发表于 2011-2-11 20:37
我是觉得系统自带的错误提示内容太生硬,所以想屏蔽,然后自己添加错误提示。

我的意思是用代码避免这个错误出现就可以了。
14#
 楼主| 发表于 2011-2-12 07:33:03 | 只看该作者
todaynew 发表于 2011-2-11 21:56
我的意思是用代码避免这个错误出现就可以了。

我就是这个意思,但我以为,用代码来避免这个错误的出现,首先要先屏蔽系统自带的错误提示。不然你说用代码来怎么写,才能避免这个错误的出现呢。
15#
 楼主| 发表于 2011-2-12 12:56:41 | 只看该作者
t小宝 发表于 2011-2-12 11:19
看了3楼的代码就应该想到错误怎么取
Private Sub Form_Error(DataErr As Integer, Response As Integer)
...

OK,多谢楼上的各位朋友,这个问题在大家的帮助指点下,总算解决了,我又学到了一点东西,好高兴。
16#
 楼主| 发表于 2011-2-19 22:13:39 | 只看该作者
本帖最后由 简 于 2011-2-19 22:43 编辑

在工时累加中,我需要显示大于24小时的时间形式hh:mm,比如35:05,我原来设置的时间格式是短时间,现在看来,不能用短时间,如果用字符,又做不起交叉查询的工时统计,怎么办呢。
17#
 楼主| 发表于 2011-2-19 22:31:25 | 只看该作者
本帖最后由 简 于 2011-2-19 22:53 编辑
todaynew 发表于 2011-2-11 19:07
进位制问题,有何难哉?
假设变量h中存小时数据,则:
str=format(int(h) mod 24,"00") & ":" & format(i ...


你这段代码不能解决大于24小时的工时,比如25:10;
要解决的话,代码就应该是str=format(int(h) ,"00") & ":" & format(int((h-int(h))*60 ),"00")

而且这个形式只能存为文本,不能存为时间格式,如果存为时间格式,25:10就变成1:10了。如果存为文本格式,交叉查询就会出错,郁闷呀。
18#
发表于 2011-2-20 08:30:04 | 只看该作者
本帖最后由 todaynew 于 2011-2-20 08:37 编辑
简 发表于 2011-2-19 22:31
你这段代码不能解决大于24小时的工时,比如25:10;
要解决的话,代码就应该是str=format(int(h) ,"00" ...


如果计算的结果为一个字段那么交叉查询出不出错没什么关系;如果计算的结果作为查询的准则,那么将原先使用#号处改为单引号就完事了。
简言之,数据类型不是导致查询出错的根本,查询书写错误才是真正的原因。
19#
 楼主| 发表于 2011-2-20 09:21:17 | 只看该作者
todaynew 发表于 2011-2-20 08:30
如果计算的结果为一个字段那么交叉查询出不出错没什么关系;如果计算的结果作为查询的准则,那么将原先 ...

我并没有用到有“#”之类的地方呀,而且“#”也只是代表日期,与文本,数字类型无关。而且我的交叉查询是采用系统向导方式生成的,具体实例可以见http://www.office-cn.net/thread-96172-1-1.html,将附件中的工时改为文本字符,这时再看交叉查询,就失效了。
20#
发表于 2011-2-20 10:00:55 | 只看该作者
本帖最后由 todaynew 于 2011-2-20 10:05 编辑
简 发表于 2011-2-20 09:21
我并没有用到有“#”之类的地方呀,而且“#”也只是代表日期,与文本,数字类型无关。而且我的交叉查询是 ...


这只是算法问题而已。你总不能指望Access能直接算出"2:30" + "1:15"="3:45"吧?

所以这是在哪个环节将小数转换为时间格式的问题,与交叉查询何干?

你欺负交叉查询不会说话,这是不对的。


您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-25 18:18 , Processed in 0.094573 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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