有没有办法从VB 6.0打开另一个用户正在使用的MS Access数据库。
我有一个更新.mdb文件的服务。我想通过定期读取一些参数来监控这个DB。
如果我尝试简单地打开数据库(如果不使用数据库就可以工作),如下所示:
Private Sub Form_Load()
Dim CurrentDBFileName
On Error GoTo ErrorHandler
Set BaseDB = OpenDatabase("c:\temp\log_db.mdb")
Set DestRS = BaseDB.OpenRecordset("current_log_info", dbOpenDynaset)
DestRS.MoveFirst
CurrentDBFileName = DestRS!CurrentDB
BaseDB.Close
ErrorHandler:
Debug.Print Err.Number; Err.Description
End Sub
我得到的错误:
3051 Microsoft Jet数据库引擎无法打开文件'b:\ log_db.mdb'。它已由其他用户专门打开,或者您需要获得查看其数据的权限。
我该如何解决这个问题?
我无法更改更新MDB文件的服务,因为它不是我的。
答案 0 :(得分:3)
尝试:
Set BaseDB = OpenDatabase("gui_db.mdb", false)
以共享模式打开数据库。请注意,所有客户端都必须以共享模式打开数据库。
答案 1 :(得分:0)
当然,最好的选择是说服编写updater服务的人确实应该以共享模式而不是独占模式打开数据库。
另一种选择可能是将要更新的mdb表拆分为单独的后端(另一个Access数据库或SQL Server)。然后,如果服务专门打开前端文件,则仍应共享后端文件。更新程序服务不应该能够看到差异。