以独占模式打开Access数据库

时间:2011-04-26 14:50:51

标签: ms-access vba vbscript

我希望能够编写一个以独占模式打开Access数据库的脚本,这样我就可以刷新其中的信息,而不必担心其他用户在不一致的状态下访问数据库。有没有办法使用VBA,或通过使用VBScript的COM接口?

2 个答案:

答案 0 :(得分:4)

如果任何用户在脚本启动时打开数据库,我不知道会发生什么。所以我选择检查是否存在数据库锁文件,只有在锁文件不存在时才继续。

这是DoSomethingExclusively.vbs:

Option Explicit

Dim strFolder
Dim strMdb
Dim strLckFile
Dim objFSO
Dim appAccess

strFolder = "C:\Access\webforums\"
strMdb = "whiteboard2003.mdb"
strLckFile = "whiteboard2003.ldb"

Set objFSO = CreateObject("Scripting.FileSystemObject")
If Not (objFSO.FileExists(strFolder & strLckFile)) Then
    Set appAccess = CreateObject("Access.Application")
    appAccess.OpenCurrentDatabase strFolder & strMdb, True
    '* do something here; this just adds a row with current time *'
    appAccess.CurrentDb.Execute _
        "INSERT INTO foo (bar) VALUES ('" & CStr(Now()) & "');" 
    appAccess.Quit
    Set appAccess = Nothing
End If
Set objFSO = Nothing

答案 1 :(得分:2)

根据this table of OLEDB init properties,您应该在连接字符串中添加“Mode = Share Exclusive”。