Вы не дали нам много информации для работы.Можете ли вы адаптировать что-то вроде Создание и использование гибких полей автонумерации , чтобы определенный процесс сначала открывал исключительно таблицу?Тогда любые другие операции, которые могут изменить данные, должны будут ждать, пока они не смогут заблокировать эту же таблицу.
Что такое специфический процесс ?У вас есть метод, чтобы определить, когда / если он читает данные из вашей базы данных?
Если определенный процесс является внешним по отношению к базе данных, как код ASP веб-сервера, который использует ADO для извлечения данных, вы можете увидеть, могут ли помочь свойства режима соединения ADO и свойства IsolationLevel.
Обновление : я использовал форму, чтобы поэкспериментировать со свойством adModeShareDenyWrite Mode для соединения ADO.Пока форма открыта, другие пользователи могут открывать базу данных, но не вносить никаких изменений.Однако, если другой пользователь уже открыл базу данных, когда форма пытается открыть соединение, это вызывает ошибку.
Возможно, ваш сценарий развертывания может попытаться открыть соединение adModeShareDenyWrite и выручить при ошибке.
Option Compare Database
Option Explicit
Dim cn As ADODB.Connection
Private Sub Form_Close()
If Not (cn Is Nothing) Then
cn.Close
Set cn = Nothing
End If
End Sub
Private Sub Form_Load()
Set cn = New ADODB.Connection
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=\\Cmpq\export\Access\backend\links2003.mdb;" & _
"User Id=admin;Password=;"
cn.Mode = adModeShareDenyWrite
cn.Open
End Sub