要求实现,如果数据里有这项东东了,就弹出数据重复的对话框,
如果没有就添加

解决方案 »

  1.   

    做错误判断,这是我在DATAGRID中加数据用到,希望能帮助你
    Private Sub DataGrid1_Error(ByVal DataError As Integer, Response As Integer)
        Response = 0
        MsgBox DataGrid1.ErrorText
        Select Case DataError
            Case 7007
               msgbox "主键重复"
        End Select
    End Sub
      

  2.   

    Dim cnn As New ADODB.Connection
    Dim rst As New ADODB.Recordset
    ....
    Sql="select * from 表1 where ID='" & id & "'"
    rst.open sql,cnn,3,3
    If Not rst.EOF Then
      MsgBox "该ID已经存在!"
    Else
      rst.AddNew
      rst("ID")=id
      ...
      rst.update
    End If
      rst.Close
      set rst=nothing
      cnn.close
      set cnn=nothing
      

  3.   

    谢谢两位,jxgzay我按你的改动,无论添加什么都是已存在,郁闷
    你看这样行不行,找到存在的那项,先附给一个变量,如果找不到就添加
    具体代码怎么写?
      

  4.   


    If Not rst.EOF Then
    改为:
    If rst.Count>0 Then试试。
      

  5.   

    试试:先用Debug找出发生数据冲突时系统的错误号,然后在你执行插入语句之后写下:ON ERROR RESUME NEXT'插入数据的代码...IF ERR.NUMBER = 你查到的错误号 THEN
        '用于错误处理的代码,比如msgbox提示信息之类...
    END IF祝好运:)
      

  6.   

    你看这样行不行,找到存在的那项,先附给一个变量,如果找不到就添加。具体代码怎么写?附给一个变量?什么意思啊。如果存在相同ID前面的SELECT语句就将游标停留在找到的第一个记录上。
    用ABSOLUTEPOSITION属性就可以看到该记录的位置。
    FIELDS属性可以读出该记录的字段PS:如果向你说的无论添加什么都是已存在你有必要把这个设置为主键吗?
      

  7.   

    Dim cnn As New ADODB.Connection
    Dim rs As New ADODB.Recordsetrs.open "select * from xyzw where id='" & id1 "'",cnn,x,x
    if rs.recordcount>0 then
       ,此ID已存在
       '处理相应的操作
    else
      rs.close
      rs.open "insert xyzw(id,xx,xx) values(id1,yy,yy)",cnn,x,x
    endif
    exit sub
    试试。
      

  8.   

    rs.open "select * from tableName where id='ID'
    if rs.count>0 then
    .......
    end id