设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 请教:如何避免输入重复值

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2002-4-18 18:48:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

请问:1.如何在窗体中捕获主键输入了重复值的错误
     2.如何在窗体中判断输入的值是重复值

本帖被以下淘专辑推荐:

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖1 订阅订阅
2#
发表于 2002-4-18 19:16:00 | 只看该作者
拦截错误啊!不过你最好把不需要重复的值在表设计字段属性中索引设置为“不重复”

点击这里给我发消息

3#
 楼主| 发表于 2002-4-18 19:26:00 | 只看该作者
qhb , 谢谢!

在何处拦截错误?

"不过你最好把不需要重复的值在表设计字段属性中索引设置为“不重复”", 我知道, 主要是要在保存前判断.

点击这里给我发消息

4#
发表于 2002-4-18 23:15:00 | 只看该作者
在form 的error事件中即可截获,错误号是3022
5#
发表于 2002-4-19 03:30:00 | 只看该作者
在窗体的控件的BEFORUPDATE事件用代码查找,如果重复,提示错误,再用ME.控件.UNDO取消输入
6#
发表于 2002-4-20 05:28:00 | 只看该作者
在窗体的控件的BEFORUPDATE事件中还可用DLOOKUP()查找,如果找到,则提示错误
例码如下,未经调试
  1. Private sub Productname_Beforeupdate(cancel as integer)
  2. if (not isnull(dlookup("[Productname]","Products","[productname]='" _
  3. & me!productname & "'") )) then
  4.     msgbox"Product has already been entered in the database"
  5.     cancel=true
  6.     me!productname.undo
  7. endif
  8. end sub
复制代码

点击这里给我发消息

7#
发表于 2002-4-20 05:35:00 | 只看该作者
我现在也是用binbow_z 这种方法
不过不知道前面的办法效率是否会高一些?
8#
发表于 2002-4-20 05:39:00 | 只看该作者
如果不在表中创建指定不重复的话,DLOOKUP应该比采用DAO或ADO打开表后查找要简单得多

点击这里给我发消息

9#
 楼主| 发表于 2002-4-20 07:59:00 | 只看该作者

请教:如何避免输入重复值

谢谢各位, binbow_z版主的方法很好, 应该在数据更新进行验证是最合适的, 只不过是多了几行代码.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-8 16:26 , Processed in 0.231289 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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