Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Закрытие сессии с Access после обновления в Excel / 11 сообщений из 11, страница 1 из 1
30.11.2015, 15:37
    #39116431
7ionov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие сессии с Access после обновления в Excel
Друзья, синхронизирую справочники в Excel из подлинкованных таблиц в Access по такой строке подключения:

Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=f:\Общая\DWH\DWH.accdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Engine Type=6;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False;Jet OLEDB:Bypass UserInfo Validation=False;Jet OLEDB:Limited DB Caching=False;Jet OLEDB:Bypass ChoiceField Validation=False

Но после обновления, база Access продолжает висеть открытой, и закрытие происходит только после закрытия Excel.

Подскажите как закрыть ее после обновления, не закрывая обновленный файл Excel.
...
Рейтинг: 0 / 0
30.11.2015, 20:25
    #39116776
MrVoid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие сессии с Access после обновления в Excel
7ionov,

Что значит "база Access продолжает висеть открытой"?
...
Рейтинг: 0 / 0
30.11.2015, 23:39
    #39116863
7ionov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие сессии с Access после обновления в Excel
MrVoid,

в Excel есть "умная" таблица, данные которой берутся из файла Access, к которому эта таблица подключена с помощью приведенной выше строки подключения.

При открытии файла Excel, если его обновить полностью, данные обновляются, а база Access блокируется .laccdb. Прошу помочь, как не закрывая файл Excel, убрать эту блокировку с файла Access. Нужно закрыть соединение, сессию или что-то в этом роде.
...
Рейтинг: 0 / 0
01.12.2015, 11:31
    #39117122
f
f
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие сессии с Access после обновления в Excel
А открываете как?
...
Рейтинг: 0 / 0
01.12.2015, 11:42
    #39117138
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие сессии с Access после обновления в Excel
7ionovНужно закрыть соединениеТак удалите подключение к БД. Вкладка Данные -Подключения. Выберите нужное и удалите.
Если удалять нельзя, возможно поможет удаление Фонового обновления и обновление по промежутку времени.
Переходите туда же: вкладка Данные -Подключения. Выбираете нужное подключение -Свойства. На вкладке Использование снимаете галку с "Фоновое обновление" и "Обновлять каждые". Оставляете только "Обновление при открытии файла".
...
Рейтинг: 0 / 0
01.12.2015, 12:43
    #39117239
7ionov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие сессии с Access после обновления в Excel
The_Prist,

Еще раз переформулировал вопрос:

Пользуюсь Access-Excel, для синхронизации справочных данных из одной базы Access во многих файлах Excel. Такое самодельное MDM (master data management).
Вся эта "красота" с выпадающими каскадными списками (зависящими от предыдущего значения в записи), пока работала без VBA.
Таблицы подключаются с помощью Подключения к внешним данным на вкладке Данные в Excel, через файл .odc, в котором содержится строка подключения:

Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=f:\Общая\DWH\DWH.accdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Engine Type=6;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False;Jet OLEDB:Bypass UserInfo Validation=False;Jet OLEDB:Limited DB Caching=False;Jet OLEDB:Bypass ChoiceField Validation=False

Таблицы обновляются вручную, после нажатия Обновить всё. С поля Обновлять при открытии, я флажок убрал.
При обновлении база Access блокируется, появляется файл .laccdb.
Блокировка снимается только после того, как пользователь закроет файл Excel, который он обновил.
Таким образом другой пользователь не может обновиться, пока открыт файл предыдущего обновившегося пользователя.

Вопрос в следующем:
Можно ли на событие, например, после ActiveWorkbook.RefreshAll повесить процедуру снятия блокировки базы Access.
...
Рейтинг: 0 / 0
01.12.2015, 13:55
    #39117330
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие сессии с Access после обновления в Excel
7ionovС поля Обновлять при открытии, я флажок убралкак бы...
The_Prist снимаете галку с "Фоновое обновление" и "Обновлять каждые". Оставляете только "Обновление при открытии файла"

Т.е. можно и не обновлять при открытии - но остальные-то точно надо снять
...
Рейтинг: 0 / 0
01.12.2015, 14:22
    #39117357
7ionov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие сессии с Access после обновления в Excel
The_Prist,

опытным путем выяснил, что база закрывается, когда после обновления заходишь в контекстном меню в: таблица ->свойства внешних данных -> свойства подключения, а потом отмена, отмена.

Но это не то, что надо)
...
Рейтинг: 0 / 0
01.12.2015, 16:15
    #39117513
f
f
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие сессии с Access после обновления в Excel
Правой кнопкой - Таблица - Разорвать связь с источником данных.
...
Рейтинг: 0 / 0
02.12.2015, 04:04
    #39117947
anvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие сессии с Access после обновления в Excel
Доброе время суток
7ionov , лучше перейдите на ODBC подключение к базе Access с установкой ReadOnly=1 в строке подключения (laccdb не будет) и, как советует уважаемый The_Prist , отключите фоновое обновление.
Архив примера распаковать в папку c:\Path

Успехов.
...
Рейтинг: 0 / 0
02.12.2015, 09:53
    #39118043
7ionov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Закрытие сессии с Access после обновления в Excel
anvg,

спасибо вам.
Именно то, что нужно.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Закрытие сессии с Access после обновления в Excel / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]