确保表格中的唯一记录 (MS Access)
Ensure Unique Records in Form (MS Access)
在 MS Access 中使用表单,我需要确保只有唯一的记录被输入 table。
不幸的是,我无法通过 table 的主键强制执行唯一记录。
我在窗体的更新前有以下代码,但它不起作用。任何帮助将不胜感激!
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
注意:table 名称是“Role_Details”。字段名称是“角色”和“会话”。使用“ComboRole”和“ComboSession”作为表单字段标签。
想知道我哪里出错了吗?
更新##
当我打开 DataSheet 表单时,它会显示一个弹出框,上面写着“输入参数值”和“frm_Role_Details.Session”。我不确定这是为什么,但我可以输入过去并打开表单。
然后,他们在我输入记录时弹出一个错误消息“运行-time error '2465': Can't find the field '|1' referenced in your expression. 两个字段是文本字符串。我很茫然!
在 VBA 中连接时,文本字段需要输入单引号分隔符。
If DCount("*", "[Role_Details]", "[Role] = '" & Me.[ComboRole] & "' AND [Session] = '" & Me.[ComboSession] & "'")> 0 Then
Date/Time 字段使用 #
分隔符。
数字字段不使用任何分隔符。
在 MS Access 中使用表单,我需要确保只有唯一的记录被输入 table。
不幸的是,我无法通过 table 的主键强制执行唯一记录。
我在窗体的更新前有以下代码,但它不起作用。任何帮助将不胜感激!
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
注意:table 名称是“Role_Details”。字段名称是“角色”和“会话”。使用“ComboRole”和“ComboSession”作为表单字段标签。
想知道我哪里出错了吗?
更新##
当我打开 DataSheet 表单时,它会显示一个弹出框,上面写着“输入参数值”和“frm_Role_Details.Session”。我不确定这是为什么,但我可以输入过去并打开表单。
然后,他们在我输入记录时弹出一个错误消息“运行-time error '2465': Can't find the field '|1' referenced in your expression. 两个字段是文本字符串。我很茫然!
在 VBA 中连接时,文本字段需要输入单引号分隔符。
If DCount("*", "[Role_Details]", "[Role] = '" & Me.[ComboRole] & "' AND [Session] = '" & Me.[ComboSession] & "'")> 0 Then
Date/Time 字段使用 #
分隔符。
数字字段不使用任何分隔符。