Открытие базы данных Access в эксклюзивном режиме - PullRequest
3 голосов
/ 26 апреля 2011

Я бы хотел написать сценарий, который открывает базу данных Access в монопольном режиме, чтобы я мог обновить информацию в ней, не беспокоясь о том, что другие пользователи обращаются к базе данных в несогласованном состоянии. Есть ли способ сделать это с помощью VBA или через интерфейс COM с помощью VBScript?

Ответы [ 2 ]

4 голосов
/ 26 апреля 2011

Я не знал, что должно произойти, если у какого-либо пользователя откроется база данных при запуске вашего скрипта. Поэтому я решил проверить наличие файла блокировки базы данных и продолжить, только если файл блокировки не существует.

Вот 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
2 голосов
/ 26 апреля 2011

Согласно этой таблице свойств инициализации OLEDB , вы должны добавить «Mode = Share Exclusive» в строку подключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...