Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select * from 读者表  where 证号= '" & Trim(Text_zh.Text) & "'" '在数据库内查询
If Adodc1.Recordset.EOF = False Then '如果数据库内不存在。则提示以下信息。
MsgBox "您输入的证号数据库已存在,请重新输入读者证号!", vbOKOnly + vbInformation, "警告!"
Text_zh.SetFocus
Text_zh.SelStart = 0
Text_zh.SelLength = Len(Text_zh.Text)
Exit Sub
End If
If Text_zh.Text = "" Or Text_xm.Text = "" Or Text17.Text = "" Or Text_bm.Text = "" Or Combo4.Text = "" Or Combo5.Text = "" Or Combo9.Text = "" Or Combo3.Text = "" Or Text_yxq.Text = "" Then
MsgBox "请将资料补充完整!", vbOKOnly + vbInformation, "提示!"
Else
'If Combo4.Text = "高级" And Combo9.Text <> "50" Or Combo4.Text = "普通" And Combo9.Text <> "30" Then
'MsgBox "请正确输入类别,以及押金!", vbOKOnly + vbInformation, "警告!"
'End If
On Error Resume Next
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("证号") = Trim(Text_zh.Text)
Adodc1.Recordset.Fields("姓名") = Trim(Text_xm.Text)
Adodc1.Recordset.Fields("部门") = Trim(Text_bm.Text)
Adodc1.Recordset.Fields("类别") = Trim(Combo4.Text)
Adodc1.Recordset.Fields("性别") = Trim(Combo5.Text)
Adodc1.Recordset.Fields("押金") = Trim(Combo9.Text)
Adodc1.Recordset.Fields("状态") = Trim(Combo3.Text)
Adodc1.Recordset.Fields("办证时间") = Trim(Text17.Text)
Adodc1.Recordset.Fields("有效期") = Trim(Text_yxq.Text)
Adodc1.Recordset.Update
Adodc1.Refresh
MsgBox "请确定!", vbOKOnly + vbInformation, "提示!"
Text_zh.Text = ""
Text_bm.Text = ""
Text_zt.Text = ""
Text_xm.Text = ""
Text_yj.Text = ""
Text_bzrq.Text = ""
Text_lb.Text = ""
Text_yxq.Text = ""
Text_xb.Text = ""
Combo5.Text = ""
Combo3.Text = ""
Adodc1.Refresh
End If
    这段代码在我运行的时候总有问题,具体就是第一次输入的时候还能用,以后总是弹出一种提示,“您输入的证号数据库内已存在”找不到错误。
    希望得到解答,小弟先行感谢了。

解决方案 »

  1.   

    证号是主键
    唯一索引
    是重复插入了
    建议看一下SQL资料先
      

  2.   

    同意楼上的你看SQL资料
    可能是它只能识别你已往数据库里写了数据,但是并不能识别你具体写的是什么数据·
      

  3.   

    Adodc1.RecordSource = "select * from 读者表  where 证号= '" & Trim(Text_zh.Text) & "'" '在数据库内查询后加一句试试
    adodc1.recordset.Requery
      

  4.   

    纳闷.看不出哪里不对啊. 
    TO 作者: 有结果了请告诉我原因.小弟谢了.
    支持你,UP一下!