Подотчеты MS Access 2010 работают нормально, но основной отчет зависает, только для пользователя, а не для разработчика. Почему и как исправить?

Я использую MS Access 2010 на Windows 7, в умеренно закрытой корпоративной среде. Я разработал отчет, который вызывает несколько вложенных отчетов и одну подчиненную форму, которая в свою очередь имеет несколько встроенных графиков. Различные элементы получают данные из нескольких запросов, основанных на других запросах, некоторые из которых параметризованы. Два параметра (значения года и месяца) взяты из единой формы, которая включает кнопки для предварительного просмотра и печати отчета. Все таблицы данных являются локальными для файла.accdb; нет серверной части.

Я разработал файл локально, затем скопировал его в общую сетевую папку и протестировал. У меня все работает, как и ожидалось - отчет занимает несколько секунд, поскольку работа с данными, по общему признанию, немного неуклюжа, но все равно отображается своевременно. Я нахожусь в Калифорнии, общая папка находится где-то на Среднем Западе или Юге, и мой коллега находится в Техасе. Я попросил коллегу открыть файл, ввести значения в форму и запустить отчет. Он получил предупреждение о том, что файл доступен только для чтения, но форма все еще работала, но отчет был заблокирован. В частности, отчет начинает выполняться, индикатор выполнения перемещается примерно на 1/3 или 2/5, а затем просто останавливается. Нет сообщения об ошибке.

У меня был принудительно закрывающий доступ сотрудника, я удалил файл блокировки, дал коллеге полный доступ к файлу и заставил его повторить попытку. Те же результаты, за исключением ошибки только для чтения. Ввод значений в форму и прямой запуск отчета, а не использование кнопок, дает тот же результат. Я попросил его просмотреть другие объекты базы данных, а также открыть все таблицы, базовые запросы, подотчеты и подчиненную форму "мгновенно" с ожидаемыми данными и количеством записей. Однако, по какой-то причине, объединение всего этого просто приводит к сбою Access каждый раз.

Coworker делал общий экран для начальных тестов, поэтому я знаю, что он правильно следовал указаниям. Мы попробовали это без, в случае, если пропускная способность была проблемой, без улучшения.

Я попробовал поискать варианты "ms / mail отчет блокирует / зависает / зависает" через Google и SO, и получил кучу материала о блокировке записей, который, я думаю, не является проблемой здесь. Если кто-то может предложить лучшие условия поиска, я играю, чтобы попробовать их.

Используемые данные являются конфиденциальными, поэтому я неохотно размещаю код, но могу работать с санированными версиями, если это необходимо для решения.

1 ответ

Решение

Поскольку файл заблокирован только для чтения, любые выполненные вычисления, которые каким-либо образом записывают данные в таблицу, работать не будут. Я предлагаю вам дважды проверить разрешения безопасности, которые пользователь имеет для сетевой папки. Это включает в себя как безопасность NTFS, так и безопасность общих папок.

Ему нужно разрешение на запись во всю сетевую папку (не только в файл базы данных), потому что Access попытается создать файл laccdb и записать его в сетевую папку. Если у него нет прав на запись в эту папку, доступ не сможет редактировать файл laccd.

Другие вопросы по тегам