Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

请教窗口输入数据重复时的处理方法

草原  发表于:2015-01-23 10:26:10  
复制

在access中建立一个表 并创建窗体输入数据如下
字段1(name)         字段2 (grade)            字段3(class)   
           s1                       2                             3                A         

           s2                       2                             3                B     

           s1                       2                             3                C
可以看到C行的三个字段值和A行的值完全相同,如出现这种情况

就弹出消息框提示数据重复。

第一种处理方法是保存数据。

第二种处理方法是操作者选择是否保存。 请问两种方法非别怎么做谢谢!

 

Top
煮江品茶 发表于:2015-01-23 10:40:35
如果是在数据表窗体或连续窗体中处理的话,可在第三个字段的更新后事件中处理:
第一种情况:


dim ssql as string
dim wh as string
wh="name='" & me.name.value & "' and grade=" & me.grade.value & " and class=" & me.class.value
if dcount("*","阁下的数据表名",wh)>1 then
      ssql="delete * from 阁下的数据表名 where " & wh
      currentdb.execute ssql
      me.Requery
end if


第二种情况:
dim ssql as string
dim wh as string
wh="name='" & me.name.value & "' and grade=" & me.grade.value & " and class=" & me.class.value
if dcount("*","阁下的数据表名",wh)>1 then
      if msgbox("该记录重复,是否删除?",vbYesNo)=vbYes then
            ssql="delete * from 阁下的数据表名 where " & wh
            currentdb.execute ssql
            me.Requery
      end if
end if



易勋 发表于:2015-01-23 10:40:55

使用dcount函数判断

 http://www.accessoft.com/article-show.asp?id=8175

判断你的字段是否完全相同的记录存在不,如果记录数>0 

第一种是将该记录删除,第二种就是使用MSGBOX 的YES/NO的选项



王岚 发表于:2015-02-03 21:26:32
我碰到的问题是如何同时判断2个字段的数据都重复并提示。比如生产日期和姓名都重复。也就是同一天不能有同一个姓名。

麥田 发表于:2015-02-04 13:00:10
    If DCount("字段名", "表名称", "ygxm='" & Me.字段名 & "'") > 0 Then
        MsgBox "你输入的数据已经存在,请重新输入", vbCritical, "警告"
        Me.字段名.SetFocus
        Exit Sub
    End If


麥田 发表于:2015-02-04 13:03:55
    '判断数值型不能重复录入使用DLookup函数的方法,效率会高一些

    Dim z As string
    z = DLookup("字段名", "表名称", "字段名= '" & Me.字段名"'")

    If Not IsNull(z) Then
        MsgBox "你输入的数字已经存在,请重新输入", vbCritical, "警告"
        Me.字段名.SetFocus
        Exit Sub

    End If



王岚 发表于:2015-02-04 14:27:24

麦田,你的代码是只能判断一个字段吗?我要同时判断2个字段,怎么处理呢。



总记录:6篇  页次:1/1 9 1 :