上次在数据库的那个版块去问了的。还是没解决这次到基础区来问下
大家看下面我写的代码
我点击添加后直接就执行on error了总是点击第一下不能成功添加到数据库中要点击第二次后才能加到数据库中(但是还是要弹出“主索引不能为重复”这几个字)。我建的主索引是学号但是我输入的值,主索引text4不是重复的,它也执行on error语句我这个到底是哪错了?Private Sub add_Click()
On Error GoTo errorinformation:
If Text4.Text <> "" Then
     Adodc1.Recordset.AddNew
     Adodc1.Recordset.Fields("姓名") = Trim(Text1.Text)
     Adodc1.Recordset.Fields("年龄") = Val(Text2.Text)
     Adodc1.Recordset.Fields("性别") = Trim(Text3.Text)
     Adodc1.Recordset.Fields("学号") = Val(Text4.Text)
     Adodc1.Recordset.Fields("语文") = Val(Text5.Text)
     Adodc1.Recordset.Fields("数学") = Val(Text6.Text)
     Adodc1.Recordset.Fields("外语") = Val(Text7.Text)
     Adodc1.Recordset.Fields("专业") = Val(Text8.Text)
     Adodc1.Recordset.Fields("总分") = Val(Text9.Text)
     Adodc1.Recordset.Update
     Adodc1.RecordSource = "select * from cjqk"
     Adodc1.Refresh
  Do While Not Adodc1.Recordset.EOF
     Text4.AddItem Adodc1.Recordset.Fields(1)
     Adodc1.Recordset.MoveNext
   Loop
Else
MsgBox "为空", 48, "错误提示"
End If
Exit Sub
errorinformation: MsgBox "主索引不能重复", 48 + 0, "提示"
End Sub

解决方案 »

  1.   

    在添加前先判断该数据在数据库中是否存在
    if 存在 then
        Adodc1.Recordset.AddNew 
    else
        Adodc1.Recordset.EditMode
    end if
      

  2.   

    if   存在   then 
            Adodc1.Recordset.AddNew   
              Adodc1.Recordset.Fields("姓名")   =   Trim(Text1.Text) 
              Adodc1.Recordset.Fields("年龄")   =   Val(Text2.Text) 
              Adodc1.Recordset.Fields("性别")   =   Trim(Text3.Text) 
              Adodc1.Recordset.Fields("学号")   =   Val(Text4.Text) 
              Adodc1.Recordset.Fields("语文")   =   Val(Text5.Text) 
              Adodc1.Recordset.Fields("数学")   =   Val(Text6.Text) 
              Adodc1.Recordset.Fields("外语")   =   Val(Text7.Text) 
              Adodc1.Recordset.Fields("专业")   =   Val(Text8.Text) 
              Adodc1.Recordset.Fields("总分")   =   Val(Text9.Text) 
              Adodc1.Recordset.Update 
    else 
            Adodc1.Recordset.EditMode 
              Adodc1.Recordset.Fields("姓名")   =   Trim(Text1.Text) 
              Adodc1.Recordset.Fields("年龄")   =   Val(Text2.Text) 
              Adodc1.Recordset.Fields("性别")   =   Trim(Text3.Text) 
              Adodc1.Recordset.Fields("语文")   =   Val(Text5.Text) 
              Adodc1.Recordset.Fields("数学")   =   Val(Text6.Text) 
              Adodc1.Recordset.Fields("外语")   =   Val(Text7.Text) 
              Adodc1.Recordset.Fields("专业")   =   Val(Text8.Text) 
              Adodc1.Recordset.Fields("总分")   =   Val(Text9.Text) 
              Adodc1.Recordset.Update 
    end   if