此表没有主键,有什么简单的方法可以达到删除重复记录的目的,望赐教~~~

解决方案 »

  1.   

    另外,在VB中,如何将一个ACCESS表的内容导入到另一个表中。两个表的格式是一样的。
    源表不在固定位置,要通过对话框来选择。如何实现,能给例子最好了。
      

  2.   

    Private Sub Command16_Click()
    Dim db As New ADODB.Connection
    db.ConnectionString = "provider=microsoft.jet.oledb.4.0;" & "data source=" & App.Path & "\dev.mdb"
    db.Open
    db.Execute "INSERT INTO A SELECT * FROM USERTABLE" '将USERTABLE表中的内容全部插入A表
    End Sub
      

  3.   

    不好意思,请问USERTABLE要如何打开?我是菜鸟,学VC的,被老板逼迫用VB开发。
      

  4.   

    打开表??Private Sub Command2_Click()
    Dim db As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    db.ConnectionString = "provider=microsoft.jet.oledb.4.0;" & "data source=" & App.Path & "\dev.mdb"
    db.Open
    rs.Open "select * from USERTABLE", db'打开表Do While Not rs.EOF
       Debug.Print rs.Fields(0).Value
       rs.MoveNext
    Loop
    End Sub
      

  5.   

    tztz520答错帖了吧,这是插入的,楼主问的是不删除重复记录
      

  6.   

    多谢逛街兄Dim Record As Database
    Dim rcdsetTemp As Recordset
    Set rcdsetTemp = Record.OpenRecordset("select distinct * from task")task是record中的一个表。在已经有以上表达式的情况下,如何将rcdsetTemp表代替task表。
    这样就不用删除重复记录那么麻烦了。
      

  7.   

    如果记录完全一样,似乎没有办法删除唯一的办法就是将所有的记录全部读出来,然后通过数组或RecordSet进行整理,然后清空表中所有记录,将数组或RecordSet中的记录新加进去。
      

  8.   

    没有主键根本无法删除,因为recordset不会识别的典型的例子就是读数据进datagrid,但是不包含主键,recordset会混乱掉
    所以导出数据也成了唯一可行的办法了:D
      

  9.   

    如何读数据进datagrid,然后又导出????????????能给个例子吗?
      

  10.   

    可以用distinct提取不重复的数据插入到一个新表中啊,这样就不用主键了(用了就没意义了)。insert into rcdsetTemp 
    select distinct name_info,cat,qty from task
      

  11.   


    insert into rcdsetTemp 
    select * from task 
    where name_info in (select distinct name_info from task)
      

  12.   

    我是楼主各位亲爱的兄弟姐妹,其实我不懂的是VB的语法,希望您在给出方法的时候,同时给出代码。让我一个星期学完VB,然后做个软件出来,天啊,我那天杀的经理
      

  13.   

    最终我自己搞定了,用最烂的方法,把有重复记录的表整个删除,再重新添加记录。代码如下:
    '删除重复记录的代码
    Dim rcdsetTemp As Recordset
    Set rcdsetTemp = Record.OpenRecordset("select distinct * from task")
    If rcdsetTemp.RecordCount < rcdsetTask.RecordCount Then
        rcdsetTask.MoveFirst
        Do Until rcdsetTask.EOF
            rcdsetTask.Delete
            rcdsetTask.MoveNext
        Loop
           
        rcdsetTemp.MoveFirst
        Do Until rcdsetTemp.EOF
            rcdsetTask.AddNew
            rcdsetTask("&iquest;¨&ordm;&Aring;") = rcdsetTemp("&iquest;¨&ordm;&Aring;")
            rcdsetTask("&Eacute;&Igrave;&raquo;§±à&ordm;&Aring;") = rcdsetTemp("&Eacute;&Igrave;&raquo;§±à&ordm;&Aring;")
            rcdsetTask("&Eacute;&Igrave;&raquo;§&Atilde;&ucirc;&sup3;&AElig;") = rcdsetTemp("&Eacute;&Igrave;&raquo;§&Atilde;&ucirc;&sup3;&AElig;")
            rcdsetTask("&frac12;&raquo;&Ograve;×&Egrave;&Otilde;&AElig;&Uacute;") = rcdsetTemp("&frac12;&raquo;&Ograve;×&Egrave;&Otilde;&AElig;&Uacute;")
            rcdsetTask("&frac12;&raquo;&Ograve;×&Ecirc;±&frac14;&auml;") = rcdsetTemp("&frac12;&raquo;&Ograve;×&Ecirc;±&frac14;&auml;")
            rcdsetTask("&Ouml;&Otilde;&para;&Euml;&ordm;&Aring;") = rcdsetTemp("&Ouml;&Otilde;&para;&Euml;&ordm;&Aring;")
            rcdsetTask.Update
            
            rcdsetTemp.MoveNext
        Loop
    End If有何不妥之处,还请各位指教。虽然问题我自己解决了,但分还是要给还各位支持者。但首先看看这段代码有什么改进之处也不迟........