小弟现在想清理数据库。苦于没有好的方法。我是用ado的方式写的程序

解决方案 »

  1.   

    用  select distinct * from table 插入到临时表中
    然后将原来的表中的纪录删除
    然后将临时表中的纪录插入的原来的表中
      

  2.   

    原理同楼上一样,但我的办法可以少导一次数据!
    (1)建一个新表,结构和源表一样。
    (2)insert into 新表 select distinct * from 原表
    (3)将原表删除,新表名字改为原表。
      

  3.   

    楼上两位说的都是基本的方法,不过三楼的方法还可以简化:
    1 select distinct * into 新表 from 原表
    2 将原表删除,新表名字改为原表。但是,数据库表改名比较麻烦,要采用 ADOX 的 Colunm 对象的 Name 属性或 DAO 的 FieldDef 的 Name 属性。因为 ADO 的 Field 对象的 Name 属性是只读的。因此,如果用 ADO,我宁可用二楼的方法。dim cn as new adodb.connection
    cn.open "provider=microsoft.jet.oledb.4.0;data source=" & strPathName
    cn.execute "select distinct * into 新表 from 原表"
    cn.execute "delete from 原表"
    cn.execute "insert into 原表 select * from 新表"
    cn.execute "drop table 新表"
    cn.close
    set cn = nothing
      

  4.   

    Private Sub Command5_Click()
    Dim cn As New ADODB.Connection
    cn.open "provider=microsoft.jet.oledb.4.0;data source=" & App.Path + "/DAT.mdb"
    cn.Execute "select distinct * into ddd from dt"
    cn.Execute "delete from dt"
    cn.Execute "insert into dt select * from ddd"
    cn.Execute "drop table ddd"
    cn.Close
    Set cn = Nothing
    End Sub为什么没有效果?只是数据库变大了。也没有看见有新表出现
      

  5.   

    drop table ddd啊,当然看不到新表出现了,数据库文件增大很正常的,谁让ACCESS是ISAM文件结构呢,压缩后就会变小的,前提是你确实有重复记录。
      

  6.   

    整理数据库后,压缩一下。
    添加数据后,即使再删除,数据库依然变大。需要压缩。引用 Microsoft Jet and Replication Objects 2.1 以上版本。Dim jro As jro.JetEngine
    Set jro = New jro.JetEngine
    jro.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source==" & App.Path & "/DAT.mdb", _
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source==" & App.Path & "/DAT1.mdb;Jet OLEDB:Engine Type=4"
    If Dir(App.Path & "/DAT1.mdb")
       Kill App.Path & "/DAT.mdb"
       Name App.Path & "/DAT1.mdb" As App.Path & "/DAT.mdb"
    End If
      

  7.   

    说什么不适合ole db规定jro.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source==" & App.Path & "/DAT.mdb", _
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source==" & App.Path & "/DAT1.mdb;Jet OLEDB:Engine Type=4"