如何解决确保表单中的唯一记录 (MS Access)
在 MS Access 中使用表单,我需要确保只有唯一的记录输入到表中。
不幸的是,我无法通过表的主键强制执行唯一记录。
我在表单的 BeforeUpdate 中有以下代码,但它不起作用。任何帮助将不胜感激!
Private Sub Form_BeforeUpdate(Cancel As Integer)
If DCount("*","[Role_Details]","[Role] = " & Me.[ComboRole] & " AND [Session] = " & Me.[ComboSession]) > 0 Then
MsgBox "Duplicate!"
Cancel = True
Me.[ComboSession].SetFocus
Exit Sub
End If
End Sub
注意:表名是“Role_Details”。字段名称是“角色”和“会话”。 “ComboRole”和“ComboSession”是表单字段标签。
对我在这里出错的地方有什么想法吗?
更新##
当我打开数据表表单时,它会显示一个弹出框,上面写着“输入参数值”和“frm_Role_Details.Session”。我不知道为什么会这样,但我可以输入过去并打开表单。
然后,他们我正在输入一条记录,弹出错误消息“运行时错误'2465':找不到表达式中引用的字段'|1'。两个字段都是文本字符串。我”我不知所措!
解决方法
在 VBA 中连接时,文本字段需要使用撇号分隔符作为输入。
If DCount("*","[Role_Details]","[Role] = '" & Me.[ComboRole] & "' AND [Session] = '" & Me.[ComboSession] & "'")> 0 Then
日期/时间字段使用 #
分隔符。
数字字段不使用任何分隔符。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。