Dim JRO As JRO.JetEngine
Set JRO = New JRO.JetEngineIf Dir(sPath & "tmpDB.dat") <> "" Then Kill (sPath & "tmpDB.dat")Name sDBFile As sPath & "tmpDB.dat"JRO.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sPath & "tmpDB.dat", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sDBFile & ";Jet OLEDB:Engine Type=4"执行的时候提示:
实时错误'-2147467259(80004005)';
不能执行这项操作;在低版本的数据库中该版本的特性不可用。在引用里已经引用了ADO2.5,DAO3.6和Microsoft Jet and Replication Objects 2.6 Library。数据库是Access2000的。按说不应该有错才对啊?会是什么问题呢?

解决方案 »

  1.   

    已经换用DAO来处理了,可是我想知道原因。送出小小的10分,大虾来看看是什么小小的问题?
      

  2.   

    JRO.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sPath & "tmpDB.dat", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sDBFile & ";Jet OLEDB:Engine Type=4"源与目标数据库颠倒了。压缩不支持 .dat 作为源数据库。
      

  3.   

    这个dat只是一个临时文件而已,也不行吗?
      

  4.   

    sDBfile="f:\xt.mdb"
    name sDBFile as sPath & "tmpDB.mdb"JRO.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sPath & "tmpDB.mdb", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sDBFile & ";Jet OLEDB:Engine Type=4"这样写也一样的提示
      

  5.   

    在access97中可以正常执行,但换为2000以上的版本就会有这样的错误了
      

  6.   

    Dim strS As String
        Dim strT As String
        strS = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FSource
        strT = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FTemp & ";Jet OLEDB:Engine Type=5"
        JRO.CompactDatabase strS, strT将 Type=4 改为 Type=5 就可以了