问 题:因为合同编号的不重复性,所以在编辑表时设置索引为“有(无重复)”,但是当在编辑窗体中输入重复值进行保存时,会弹出一个错误提示框,
并进入代码调试界面。这种情况对于编程人员来说很正常,但对于使用人员来说就会手忙脚乱,不知所措。
解决办法:
在不改变原有设置的情况下,为避免操作中断,通过在保存按钮代码中加入对合同编号字段的校验来纠正以上问题。
即在如下代码中加入红色代码部分:
Private Sub btnSave_Click()
On Error GoTo ErrorHandler
If Not CheckRequired(Me) Then Exit Sub
If Not CheckTextLength(Me) Then Exit Sub
If DCount("*", "tbl_采购合同(订单)", "[tbl_采购合同(订单)]![cghtid]<>'" & Me![cghtid] & "' And [tbl_采购合同(订单)]![htbh]='" & Me![htbh] & "'") > 0 Then
MsgBox "该合同(订单)编号已存在,请重新编辑", vbInformation
Exit Sub
End If
Dim cnn: Set cnn = CurrentProject.Connection 'ADO.Connection()
'cnn.BeginTrans
'Dim blnTransBegin As Boolean: blnTransBegin = True
上述代码[tbl_采购合同(订单)]![cghtid]<>'" & Me![cghtid] & "'因为可以对已有记录和新纪录进行甄别,所以可以避免在对已有记录进行编辑时,出现提醒对话框。不过此处不必非要用主键字段,也可用其他必填内容的字段作为甄别依据。
效 果:
当输入编号重复时,点击保存按钮,则会弹出如下对话框
且原来输入的内容仍然存在,只需对编号进行修正即可。