|
|
|
| Я по сети открываю базу нормально. Но почему-то на других компах пишет, что база доступна тока для чтения и ругается на процедуру
Public Sub ClearTablesRef()
Dim dbs As Database, tdf As TableDef
Dim sSS As Variant, k As Integer
Set dbs = CurrentDb
999:
For Each tdf In dbs.TableDefs
sSS = tdf.Connect
If Len(sSS) > 0 Then
dbs.TableDefs.Delete (tdf.Name)
GoTo 999
End If
Next tdf
End Sub
эта процедура в AutoPatch-е находится | |
|
| |
|
|
|
| возможно кто-то открывает базу монопольно, возможно нехватает каких-то прав (или в самой базе или в ОС на файл). Возможно в это время открыта таблица (или форма или запрос) которые используют данные из таблиц которые вы пытаетесь удалить. | |
|
| |
|
|
|
| Процедура ClearTablesRef() удаляет из Access информацию обо всех подключенных таблицах (dbs.TableDefs.Delete (tdf.Name)). Но проблема не в ней.
Я же вам писал пару дней назад: папку с серверной частью надо шарить именно с правами на запись. Иначе при первой попытке открыть БД Аксесс обнаружит, что не может создать в папке файл блокировок *.laccdb и откроет базу в монопольном режиме - другие пользователи уже не смогут подключиться к БД. | |
|
| |