Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
1

Access не санкционированно открывает таблицу Excel

21.03.2013, 12:23. Показов 1098. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Возникла такая ошибка.
Таблицы с данными хранятся на сервере в формате БД Access и таблиц Excel. БД Access-клиент расположены у разных пользователей и содержат связанные таблицы с формами и модулями для обработки данных. На главной форме у пользователей есть поле, которое периодически обновляется и для своего обновления запрашивает последние данные из связанных таблиц Access и Excel

(DMax("[Данные]", "Debt" & DMax("[Данные1]", "Контроль").
Debt- связанная таб Excel
Контроль - связанная таб Access

У первого пользователя все происходит гладко, а у других связанные таблицы Excel блокируются и если у них открыто приложение Excel– любой файл, ТО ПРОИСХОДИТ ОТКРЫТИЕ ТАБЛИЦЫ Excel, которая лежит на сервере (только для чтения) – это немного раздражает и меня уже тоже. Мозг закипает – не могу понять причину, а закладывать все данные из таблиц Excel в серверную часть БД Access не целесообразно и достаточно проблематично. Прошу помощи или совета.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2013, 12:23
Ответы с готовыми решениями:

Вывод результатов из Access в Excel таблицу.
Привет всем! У меня такой вопрос: Я обращаюсь к БД и результат вывожу в виде таблицы на экран, а...

Импорт данных Excel в таблицу Access
Здравствуйте Уважаемые форумчане, подскажите пожалуйста как осуществить такую штуку: Имеется файл...

Загрузка данных из excel в таблицу access
Добрый день! Раньше работала с sql server. И все там хорошо, пакеты интеграции, можно настроить...

Копирование данных из БД Access в таблицу Excel
Интересует метод, т.к что-то никак)

7
126 / 44 / 1
Регистрация: 04.11.2011
Сообщений: 241
21.03.2013, 18:20 2
Какая заковыка получилась у вас с интеграцией одного в другое ... Предположу, что дело в следующем: при обращении формы к таблице, последняя открывается с монопольным доступом. Следовательно второй и последующие открывают в режиме ограниченного доступа. Попробуй изменить алгоритм, обработав эту исключительную ситуацию. К примеру, добавить проверку: если эксель-таблица открыта другим пользователем, то ждать по таймеру и пробовать снова.
1
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
22.03.2013, 00:50 3
В многопользовательском режиме не стоит присоединять екселевскую таблицу. При необходимости воспользоваться данными из нее - делать запрос к таблице. Типа такого (аналог DMax для присоединенной таблицы)
SQL
1
SELECT MAX(Данные) FROM [Лист1$] IN 'c:\File.xls'[Excel 8.0;IMEX=2;hdr=Yes;]
Но и здесь надо помнить, что открытый запрос также блокирует доступ к ексель-файлу. Соответственно, надо его считать и сразу же закрыть соединение. И конечно же не делать этот запрос источником формы или отчета.
2
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
22.03.2013, 13:10  [ТС] 4
Цитата Сообщение от murcha86 Посмотреть сообщение
Какая заковыка получилась у вас с интеграцией одного в другое ... Предположу, что дело в следующем: при обращении формы к таблице, последняя открывается с монопольным доступом. Следовательно второй и последующие открывают в режиме ограниченного доступа. Попробуй изменить алгоритм, обработав эту исключительную ситуацию. К примеру, добавить проверку: если эксель-таблица открыта другим пользователем, то ждать по таймеру и пробовать снова.
Вы, правильно, все описали, можно поподробнее код на проверку. Спасибо

Добавлено через 3 минуты
Цитата Сообщение от mobile Посмотреть сообщение
В многопользовательском режиме не стоит присоединять екселевскую таблицу. При необходимости воспользоваться данными из нее - делать запрос к таблице. Типа такого (аналог DMax для присоединенной таблицы)
SQL
1
SELECT MAX(Данные) FROM [Лист1$] IN 'c:\File.xls'[Excel 8.0;IMEX=2;hdr=Yes;]
Но и здесь надо помнить, что открытый запрос также блокирует доступ к ексель-файлу. Соответственно, надо его считать и сразу же закрыть соединение. И конечно же не делать этот запрос источником формы или отчета.
Очень интересный вариант! а как в этом случае присвоить значение "Max(Данные)" переменной. В таких запросах я чайник, прошу помочь с кодом.
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
22.03.2013, 13:35 5
Visual Basic
1
2
3
Dim MyVar, s
s="SELECT MAX(Данные) FROM [Лист1$] IN 'c:\File.xls'[Excel 8.0;IMEX=2;hdr=Yes;]"
MyVar=Currentproject.connection.execute(s).fields(0)
1
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
22.03.2013, 14:32  [ТС] 6
Цитата Сообщение от mobile Посмотреть сообщение
Visual Basic
1
2
3
Dim MyVar, s
s="SELECT MAX(Данные) FROM [Лист1$] IN 'c:\File.xls'[Excel 8.0;IMEX=2;hdr=Yes;]"
MyVar=Currentproject.connection.execute(s).fields(0)
Спасибо, написал обработчик, и данные присваиваются переменной корректно. Остался вопрос -
в этом случае внешняя таблица Ексель блокируется или нет? Нужно ли освобождать или закрывать такой запрос, чтобы не было конфликта у пользователей?
0
Эксперт MS Access
26806 / 14485 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
22.03.2013, 14:45 7
Цитата Сообщение от boby104 Посмотреть сообщение
стался вопрос - в этом случае внешняя таблица Ексель блокируется или нет? Нужно ли освобождать или закрывать такой запрос, чтобы не было конфликта у пользователей?
В момент получения данных блокируется. Но это же доли секунды. На всякий случай можно поставить обращение к екселю в цикл и задать обработчик ошибок. И циклить, пока ошибка не станет нулем.
1
1266 / 448 / 129
Регистрация: 21.03.2013
Сообщений: 1,210
22.03.2013, 15:15  [ТС] 8
Всем спасибо за помощь, Mobile, большое спасибо. Так как пользовательские формы обращаются к таблице не одновременно, вероятность совпадения запросов по времени ничтожно мала. Проблемка решена. Тему можно закрывать.
0
22.03.2013, 15:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.03.2013, 15:15
Помогаю со студенческими работами здесь

Импорт из Excel в имеющуюся таблицу access
Всем привет. Помогите пожалуйста. У меня проблема. Есть файл excel - 123.xls, который состоит из...

Импорт данных в таблицу Access из Excel
Всем доброго времени суток. Есть проблема, которую уже долго не могу решить. Имеется база данных...

Импорт определенных столбцов из Excel в таблицу Access!
Импорт в таблице получается каскадом, может у кого есть более удобное решение данной проблемы....

Экспорт таблицы из Access в определенную таблицу Excel
Добрый день. Интересует такой вопрос, можно ли определенную таблицу из Access экспортировать в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru