【问题标题】:How to compact database access file in vb如何在vb中压缩数据库访问文件
【发布时间】:2014-10-06 13:25:45
【问题描述】:

现在我的文件夹中已经有数据库,但文件大小最大。然后我想压缩这个文件,但我收到一些关于“无效参数”的错误,在这种情况下我该怎么办。谢谢你

这是我的代码

Dim JRO As New JRO.JetEngine
    Dim source = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & System.AppDomain.CurrentDomain.BaseDirectory & "Code7.accdb"
    Dim compact = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & System.AppDomain.CurrentDomain.BaseDirectory & "newCode7.accdb;Jet OLEDB:Engine Type=5"
    JRO.CompactDatabase(source, compact)
    'delete orinal file
    System.IO.File.Delete(System.AppDomain.CurrentDomain.BaseDirectory & "Code7.accdb")
    'rename compact file to original file name
    File.Move(System.AppDomain.CurrentDomain.BaseDirectory & "newCode7.accdb", System.AppDomain.CurrentDomain.BaseDirectory & "Code7.accdb")
    MessageBox.Show("The database was compacted successfully")

【问题讨论】:

  • Source & Compact 似乎在它们的连接字符串中有相同的文件名。
  • 请再次检查我的编辑问题,谢谢您的回复。
  • 最好告诉我们是哪一行导致了错误?

标签: vb.net ms-access compact-database


【解决方案1】:

这有两个问题。首先也是最重要的是,您需要告诉 JRO 您要压缩哪种数据库。您可以通过附加...

    ;Jet OLEDB:Engine Type=5

到每个连接字符串。这将消除您的“无效参数”错误。

其次,您的源数据库和目标数据库相同。如果你这样做,你会得到另一个错误, - “数据库存在”。您必须压缩成一个单独且不同的文件。

【讨论】:

  • 我在输入您的代码时发现了类似这样的错误“无法在此数据库上完成操作,因为它使用附件或多值查找字段。”。
  • 我有一些关于目标的问题,该文件必须位于数据库访问文件所在的同一文件夹中,不是吗?
猜你喜欢
  • 2019-04-06
  • 2021-11-07
  • 2016-02-04
  • 1970-01-01
  • 2012-12-22
  • 1970-01-01
  • 2015-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多