在上述代码中已经包括了修复数据库,不过,我在使用过程中发现,因为引用JetEngine不支持中文,所以压缩了之后,ACCESS中与中文代码页相关的东西全部会丢失。所以直到现在,我还不敢用ACCESS2000做库……
上面的原因应该是你使用了中文字段名或者内含中文,所以会有丢失的问题。
最后我自己解决这个问题的方法是使用ACCESS97,并且还是打开工作空间来压缩与修复数据库(调用DAO3.51)来解决的。

解决方案 »

  1.   

    哦?我使用的是ACCESS97呀,让我按你的方法先试试看
      

  2.   

    我已经用下述方法完成,没发现错误!
    Dim fs
    dbs.Close
    Set fs = CreateObject("Scripting.FileSystemObject")
    If fs.FileExists(App.Path & "\backup\newmlc.mdb") Then fs.DeleteFile App.Path & "\backup\newmlc.mdb"
    DBEngine.CompactDatabase App.Path & "\mlc.mdb", App.Path & "\backup\newmlc.mdb"
    Dim fs2
    Set fs2 = CreateObject("Scripting.FileSystemObject")
    If fs2.FileExists(App.Path & "\mlc.mdb") Then fs2.DeleteFile App.Path & "\mlc.mdb"
    fs2.copyfile App.Path & "\backup\newmlc.mdb", App.Path & "\mlc.mdb"
    Set dbs = OpenDatabase(App.Path & "\mlc.mdb")
    MsgBox "数据库压缩成功", 64, "压缩完成"
      

  3.   

    要是JRO不支持中文的话,就用大DAO试试。
    反正我用ACCESS97(中文字段)+ DAO成功了。