1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
|
|
1 | |
Access не санкционированно открывает таблицу Excel21.03.2013, 12:23. Показов 1098. Ответов 7
Метки нет (Все метки)
Возникла такая ошибка.
Таблицы с данными хранятся на сервере в формате БД Access и таблиц Excel. БД Access-клиент расположены у разных пользователей и содержат связанные таблицы с формами и модулями для обработки данных. На главной форме у пользователей есть поле, которое периодически обновляется и для своего обновления запрашивает последние данные из связанных таблиц Access и Excel (DMax("[Данные]", "Debt" & DMax("[Данные1]", "Контроль"). Debt- связанная таб Excel Контроль - связанная таб Access У первого пользователя все происходит гладко, а у других связанные таблицы Excel блокируются и если у них открыто приложение Excel– любой файл, ТО ПРОИСХОДИТ ОТКРЫТИЕ ТАБЛИЦЫ Excel, которая лежит на сервере (только для чтения) – это немного раздражает и меня уже тоже. Мозг закипает – не могу понять причину, а закладывать все данные из таблиц Excel в серверную часть БД Access не целесообразно и достаточно проблематично. Прошу помощи или совета.
0
|
21.03.2013, 12:23 | |
Ответы с готовыми решениями:
7
Вывод результатов из Access в Excel таблицу. Импорт данных Excel в таблицу Access Загрузка данных из excel в таблицу access Копирование данных из БД Access в таблицу Excel |
126 / 44 / 1
Регистрация: 04.11.2011
Сообщений: 241
|
|
21.03.2013, 18:20 | 2 |
Какая заковыка получилась у вас с интеграцией одного в другое ... Предположу, что дело в следующем: при обращении формы к таблице, последняя открывается с монопольным доступом. Следовательно второй и последующие открывают в режиме ограниченного доступа. Попробуй изменить алгоритм, обработав эту исключительную ситуацию. К примеру, добавить проверку: если эксель-таблица открыта другим пользователем, то ждать по таймеру и пробовать снова.
1
|
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
22.03.2013, 00:50 | 3 | |||||
В многопользовательском режиме не стоит присоединять екселевскую таблицу. При необходимости воспользоваться данными из нее - делать запрос к таблице. Типа такого (аналог DMax для присоединенной таблицы)
2
|
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
|
|
22.03.2013, 13:10 [ТС] | 4 |
Вы, правильно, все описали, можно поподробнее код на проверку. Спасибо
Добавлено через 3 минуты Очень интересный вариант! а как в этом случае присвоить значение "Max(Данные)" переменной. В таких запросах я чайник, прошу помочь с кодом.
0
|
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
|
|
22.03.2013, 14:32 [ТС] | 6 |
Спасибо, написал обработчик, и данные присваиваются переменной корректно. Остался вопрос -
в этом случае внешняя таблица Ексель блокируется или нет? Нужно ли освобождать или закрывать такой запрос, чтобы не было конфликта у пользователей?
0
|
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
22.03.2013, 14:45 | 7 |
В момент получения данных блокируется. Но это же доли секунды. На всякий случай можно поставить обращение к екселю в цикл и задать обработчик ошибок. И циклить, пока ошибка не станет нулем.
1
|
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
|
|
22.03.2013, 15:15 [ТС] | 8 |
Всем спасибо за помощь, Mobile, большое спасибо. Так как пользовательские формы обращаются к таблице не одновременно, вероятность совпадения запросов по времени ничтожно мала. Проблемка решена. Тему можно закрывать.
0
|
22.03.2013, 15:15 | |
22.03.2013, 15:15 | |
Помогаю со студенческими работами здесь
8
Импорт из Excel в имеющуюся таблицу access Импорт данных в таблицу Access из Excel Импорт определенных столбцов из Excel в таблицу Access! Экспорт таблицы из Access в определенную таблицу Excel Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |