1

我正在尝试压缩我的 Microsoft Access 2010 数据库。我正在使用 VS 2010。我似乎无法让压缩工作。我尝试了几种方法,但收到不同的错误消息。这是我现在拥有的代码。

Private Sub Compactdb()

    Dim JRO As JRO.JetEngine
    JRO = New JRO.JetEngine

    'The first source is the original, the second is the compacted database under an other name.
    JRO.CompactDatabase("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\C:\Forte\Fortedb.accdb", "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\C:\Forte\Compactdb.accdb")


    'Original (not compacted database is deleted)
    System.IO.File.Delete("C:\Program Files\VSoft\AppMiss\NewAppDB.mdb")

    'Compacted database is renamed to the original databas's name. 
    Rename("C:\Forte\Compactdb.accdb", "C:\Forte\Fortedb.accdb")

    'User notification
    MsgBox("The database was compacted successfully")

End Sub

我现在得到的错误是

错误 1 ​​无法将文件“\phipnasw01\users-hip$\cerns1\My Documents\Visual Studio 2010\Projects\Forte Data Gatherer\Forte Data Gatherer\Example1.accdb”复制到“bin\Debug\Example1.accdb”。找不到文件 '\phipnasw01\users-hip$\cerns1\My Documents\Visual Studio 2010\Projects\Forte Data Gatherer\Forte Data Gatherer\Example1.accdb'。Forte 数据收集器

4

1 回答 1

1

当 VS DEBUG/RELEASE 会话启动时,IDE 会尝试将该文件从项目文件夹复制到输出目录(通常是 BIN\DEBUG)。由于某些原因,IDE 找不到文件或路径,因此无法将其复制到输出目录。

这不是编程错误,而是项目文件的配置。

此副本似乎与您显示的代码无关,因此,您可以将属性设置Copy to Output directoryNever Copy

相反,关于您上面的代码,您对文件名做了一些错误

Private Sub Compactdb()

    Dim JRO As JRO.JetEngine
    JRO = New JRO.JetEngine

    Dim source = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Forte\Fortedb.accdb"
    Dim compact = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Forte\Compactdb.accdb"
    JRO.CompactDatabase(source, compact)

    'Original (not compacted database is deleted)
    System.IO.File.Delete("C:\Forte\Fortedb.accdb")

    'Compacted database is renamed to the original databas's name. 
    File.Move("C:\Forte\Compactdb.accdb", "C:\Forte\Fortedb.accdb")

    'User notification
    MsgBox("The database was compacted successfully")

End Sub
于 2013-06-26T21:31:38.733 回答