为了防止重复插入数据,每插入一个数据前做一下判断,
其中的rs是Set rs = mdb.OpenRecordset(tableName(List1.ListIndex), 1)
可是结果还是插入了
代码如下:Set rs2 = mdb.OpenRecordset("select wenzhi from " & tableName(List1.ListIndex) & " where wenzhi=" & hanzi, 1)
           If rs2.RecordCount = 0 Then
            rs.AddNew
            rs.Fields("bianma") = srm
            rs.Fields("wenzhi") = hanzi
            rs.Fields("number") = i + 1
            rs.Update
            End If

解决方案 »

  1.   

    Set rs2 = mdb.OpenRecordset("select wenzhi from " & tableName(List1.ListIndex) & " where wenzhi=" & hanzi, 1)
               If rs2.eof Then
                rs.AddNew
                rs.Fields("bianma") = srm
                rs.Fields("wenzhi") = hanzi
                rs.Fields("number") = i + 1
                rs.Update
                End If
      

  2.   

    不會的,如果還是插入了
    那就換成  If rs2.RecordCount >0 Then
         exit sub
      else
         rs.addnew
        .....
       rs.update
      end if偶喜歡用這個判斷,從來沒有出錯噢^^
      

  3.   

    我也是楼上的看法,如不能解决问题,就检查SQL语句
      

  4.   

    哈哈,ryuginka(ryuginka)的方法我肯定试过了
     daisy8675(莫依) 的我想过退出,但是只能退出循环:)
    有讨厌的管理员要熄灯了,明天来试
      

  5.   

    总算可以来解决昨天的问题了,调试了一阵,发现:
    应该是这句话中的sql部分有问题
    Set rs2 = mdb.OpenRecordset("select wenzhi from " & tableName(List1.ListIndex) & " where wenzhi=" & hanzi, 1)
    调试中发现,结果总是nothing,故 rs2.RecordCount = 0恒成立, 当然持续插入
    debug.print出一句sql语句如:select wenzhi from Zi1jm  where wenzhi=我们
    准确的应该是select wenzhi from Zi1jm  where wenzhi='我们'吧
    哈哈,在vb中sql语句的变量该如何处理,请指导!
    谢谢几位的建议.
    kissoflife(明月高楼休独倚,酒入愁肠,化作相思泪!)也应该可行的.
      

  6.   

    我把sql部分换成了"select wenzhi from " & tableName(List1.ListIndex) & " where wenzhi='" & hanzi & "' "
    debug.print出来是select wenzhi from Zi1jm  where wenzhi='我们'
    可是rs还是nothing
    ????
      

  7.   

    不好意思,我用的数据库是access(几乎没用过),不知道检测sql语句:(
      

  8.   

    打开access,在里面新建一个查询,把sql语句放进去即可执行。