Access 2007 compact DB



对不起,我是从意大利来的。我在VBNet中的一个业务数据管理过程中使用了Access2007DB。众所周知,Access DB在使用过程中会扩展,因此我需要在程序关闭时压缩它们。我以这种方式执行压缩

Dim MioEngine As New Microsoft.Office.Interop.Access.Dao.DBEngine
MioEngine.CompactDatabase(myAccesDB, newAccessDB,)
Application.DoEvents()

但通常情况下,并不是在网络上的所有PC上,压缩都没有完成,并给我以下错误消息:进程无法访问"C:\myAccesDB.accdb"文件,因为它正被另一个进程使用深入分析发生的情况,我发现当错误发生时,在压缩时没有关闭.lacdb文件。除了我过去安全压实的方法之外,还有其他方法吗?我指定我们网络中的所有电脑都是Windows 10 pro,并且都已更新;当Windows 10还处于起步阶段时,我没有遇到这个错误。

由于我的评论不够,这里有一个答案:

这个想法是在尝试压缩数据库之前先尝试操作.laccdb文件。你可以这样做:

Dim file as System.IO.FileInfo = New System.IO.FileInfo("c:myAccesDB.laccdb")
Dim stream As FileStream = Nothing
Try
stream = file.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None)
stream.Close()
'if stream is successfully closed, file is not in use and database can be compacted
MioEngine.CompactDatabase(myAccesDB, newAccessDB,)
Catch ex As Exception
'show some message to user that file is in use so it can try again
End Try

我很早以前就使用VB和Access,所以这只是你应该走的方向。

谢谢,我会试试的。我还看了一下:
https://support.microsoft.com/en-us/topic/office-error-accdb-remains-locked-after-oledb-connection-is-closed-37d42348-9edf-4493-a5f4-35c685af3160?ui=en-美国;rs=en-us&ad=us

我在哪里找到:此问题现已解决。如果启动Access,请依次单击"文件"、"帐户"、"更新选项"one_answers"立即更新",这将确保您拥有最新版本,并且所有版本都应具有可用的修复程序

但我找不到打开Access的"文件",。。。。

最新更新