首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查重复的名称,但避免激活自身

如何检查重复的名称,但避免激活自身
EN

Stack Overflow用户
提问于 2019-07-05 14:27:08
回答 1查看 37关注 0票数 1

我有表单,其中用户必须输入公司名称,以避免重复,我写了On_Exit event的数据输入字段。它检查所有记录,如果发现重复,它会通知用户。问题是,我使用相同的表单查看输入的数据,然后执行相同的操作,尽管输入没有重复,但On_Exit event显示重复的警告。它的发生是因为代码检查所有的条目,由于它已经在数据库中,它自己创建并引发错误警报,这是一个代码缺陷,但我不知道如何避免。有没有人可以提供巧妙的方法来避免这个问题,而不用创建两个相同的表单(除了一个没有重复检查的表单)?

我的查重代码:

代码语言:javascript
复制
Private Sub Pareisk_pav_Exit(Cancel As Integer)

Dim Par_pav As String
Dim rst As DAO.Recordset
Dim Counter As Long

Set rst = CurrentDb.OpenRecordset("tblPareiskejai")

Do Until rst.EOF
    Par_pav = rst(1)
        If rst(1) = Me.Pareisk_pav.Value Then
           Me.WarningLB.Caption = "Entry with this name already exist"
           Exit Do
        Else
            Me.WarningLB.Caption = ""
        End If
    rst.MoveNext
Loop

Exit Sub

我试图在我的代码中实现计数器来忽略第一个匹配,但在这种情况下,它只捕获第二个重复项,然后输入新条目。

计数器解决方案(未按预期工作)我尝试过:

代码语言:javascript
复制
Do Until rst.EOF
    Par_pav = rst(1)
        If rst(1) = Me.Pareisk_pav.Value Then
            Counter = Counter + 1
            If Counter = 2 Then
                Me.WarningLB.Caption = "Entry with this name already exist"
                Exit Do
            End If
        Else
            Me.WarningLB.Caption = ""
        End If
    rst.MoveNext
Loop
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-05 14:56:27

我突然自己想出了一个解决方案。因为新条目在保存之前就获得了新的ID,所以我想我可以在我的优势中使用它,并在if子句中添加了And rst(0) <> Me.ID.Value。到目前为止,它工作得很好。完全编辑的代码:

代码语言:javascript
复制
Private Sub Pareisk_pav_Exit(Cancel As Integer)

Dim Par_pav As String
Dim rst As DAO.Recordset
Dim marker As Boolean

Set rst = CurrentDb.OpenRecordset("tblPareiskejai")

Counter = 0

Do Until rst.EOF
    Par_pav = rst(1)
        If rst(1) = Me.Pareisk_pav.Value And rst(0) <> Me.ID.Value Then
            Me.WarningLB.Caption = "Name already exist!"
            Exit Do
        Else
            Me.WarningLB.Caption = ""
        End If
    rst.MoveNext
Loop

Exit Sub

End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56897599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档