Access Front end отлично работает для большинства пользователей, но у одного пользователя постоянно возникают проблемы - PullRequest
0 голосов
/ 13 июня 2019

У меня есть несколько баз данных MS Access 2010, которые используются для отслеживания различных вещей для моей группы.У каждой базы данных есть выделенный сервер, а у каждого пользователя есть локальная копия интерфейса (* .accdr) и среды выполнения доступа 2010.Только трое из нас имеют полные версии Access.Каждая БД имеет до 6 пользователей, и у некоторых пользователей есть несколько БД, которые они регулярно используют.В частности, один пользователь имеет несколько проблем с этими БД.Одна из них имеет форму, в которой вы помещаете критерии в некоторые текстовые поля, нажимаете кнопку, и открывается другая форма, отображающая данные.У всех есть это без проблем.По ее мнению, это вызывает диалоговое окно, запрашивающее критерии во второй раз.Это довольно универсально для БД, которые она использует.В другой БД при нажатии кнопки запускается макрос для экспорта запроса в электронную таблицу MS Excel.Это приведет к неопределенной ошибке во время выполнения, а затем отключит весь интерфейс.Опять же, это отлично работает для других пользователей.

Я систематически проходил и пробовал каждую БД с компьютера каждого пользователя.Я проверил и перепроверил исходные файлы * .accdb, из которых я генерирую внешние интерфейсы.Кажется, проблема существует только на компьютере этого пользователя.У нее есть полная копия Access 2010, но она никогда не использует ее.У нее также есть 2010 время выполнения.Все наши машины подключены через Ethernet к серверу, на котором хранятся серверные части.

Я бы ожидал, что внешний интерфейс будет работать на своей машине одинаково без неожиданных всплывающих окон или ошибок времени выполнения, поскольку он ведет себя так, как ондолжен на машине каждого другого пользователя.Я не знаю, что искать сейчас, и я не склонен поднимать руки и винить в плохой установке на ее машине.Есть ли какие-то логические шаги, которые я могу предпринять сейчас, поскольку ИТ-поддержка - это то место, которое ни один здравомыслящий человек в моем офисе не хочет делать (плохо для кровяного давления).Любая помощь, совет или даже мистические заклинания будут оценены.

Ответы [ 2 ]

2 голосов
/ 18 июня 2019

Это обычное явление.

Подсказка HUGE MASSIVE заключается в том, что accDB работает, а accDE (предварительно скомпилированный) - нет.

И следующий совет HUGE MASSIVE-off компилирует accDB в accDE на этой конкретной машине, ТАКЖЕ работает.

Причина и проблема в том, что версия Access, работающая на этой машине, не соответствует версии сохранения, которую вы используете на другоймашины.(Конкретная машина, используемая для компиляции accDB в accDE).

Хотя, конечно, вы запускаете Access 2010 на всех машинах, проблема заключается в версии обновления SP (с установленными пакетами обновления).

Имейте в виду, что среда выполнения НЕ обновляется обновлением Windows.

Имейте в виду, что запуск обновления Office SP НЕ будет обновлять среду выполнения (но это будет применяться только к машинам, работающим только во время выполнения).

Итак, на вашем компьютере разработчика?Что ж, автоматические обновления могут запускать обновление SP до Office 2010.

Однако автоматические обновления Windows НИКОГДА не обновляют среду доступа access 2010.Необходимо установить обновления 2010 SP SP времени выполнения вручную.Итак, с сочетанием времени выполнения и полной версии?

Ну, на машинах с полной версией появятся обновления SP (они перезаписывают среду выполнения на этих машинах).Фактически, вы не можете установить как полную версию, так и среду выполнения на одном компьютере.Установщик допускает это, но это «поддельная» установка, и установка среды выполнения 2010 на машины с полной версией фактически НИЧЕГО не делает !!(Что ж, он создает «поддельную» запись в списке установленных программ, но на самом деле он НЕ устанавливает среду выполнения, поскольку он перезаписывает полную версию, которая уже существует на компьютере).

На компьютерахс полной версией, затем установка обновлений SP в офис или даже разрешение обновления Windows сделать это СЕЙЧАС приведет к тому, что версия 2010 будет РАЗЛИЧНОЙ по сравнению с вашей машиной разработчика.

Причина, по которой работает accDB, заключается в том, что Access(даже время выполнения) обнаружит, что «версия SP» отличается, и перекомпилирует VBA на лету.Даже автономная версия времени выполнения способна перекомпилировать исходный код VBA.

Однако, с помощью accDE?

Код предварительно скомпилирован, и, следовательно, не требуется-компиляция может произойти.Там нет исходного кода.AccDE должен и часто ДОЛЖЕН запускаться + использоваться в версии SAME sp.

Чтобы уменьшить или почти устранить эту проблему?

Что ж, на вашем компьютере разработчика убедитесь, что sp2, или обновление sp3 для офиса было применено.

На целевых компьютерах?Если они только во время выполнения, вы ДОЛЖНЫ установить обновление sp2 или sp3 в среду доступа.Я не могу подчеркнуть, что вы ДОЛЖНЫ загрузить и установить обновление SP2 или SP3 для среды доступа.Обновление office sp НЕ БУДЕТ работать и не будет обновлять версию времени выполнения только на машинах времени выполнения.

Из-за вышеизложенного?

Я рекомендую загрузить среду выполнения 2010 года.Загрузите обновление среды выполнения sp3 2010 и «пропустите поток» обновления sp3 В установщик среды выполнения 2010 года.

Затем можно предоставить сайту клиента (или вашему сайту) папку на сервере с установленной средой выполнения для установки.и, КОГДА вы устанавливаете среду выполнения, в эту установку будет включено обновление sp3.

Если вы (или ваш ИТ-отдел) НЕ знаете, как включить обновление SP3, тогда просто ВСЕГДА установитесреда выполнения 2010, а затем ВСЕГДА устанавливайте обновление sp3 для среды выполнения 2010.

Выполнение вышеуказанного устранит проблему, связанную с созданием и компиляцией AccDE с другой версией выпуска доступа.

Последнее, но не менее важное?

Нет сомнений, что вы хотите продолжить использовать скомпилированный accDE, поскольку во время выполнения любая необработанная ошибка с accDB не только выдаст сообщение об ошибке, но и отключит всеapplication.

Итак: С помощью accDE: Ошибки НИКОГДА не сбрасывать глобальные или локальные переменные. \ Ошибки будутл никогдаиспользовать отключение времени выполнения.Даже необработанные ошибки НЕ приведут к закрытию вашего приложения.Необработанные ошибки НИКОГДА не будут переустанавливать локальные или глобальные переменные, они будут ВСЕГДА независимо от того, что сохранят свои значения на время сеанса приложения.

При использовании accDB и времени выполнения: любая необработанная ошибка будет уничтоженавсе локальные и глобальные переменные.Любая необработанная ошибка затем отключит среду выполнения после отображения таких ошибок.

Итог: использование accDE, таким образом, значительно более надежно, чем accDB при использовании среды выполнения.

0 голосов
/ 17 июня 2019

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

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

Поскольку у нее была полная копия Access 2010, мы открыли исходный файл * .accdb прямо на ее компьютере.В то время это работало просто отлично.

Оттуда я пошел, возможно, немного за борт.Но это сработало.Я открыл все формы в режиме конструктора.Дважды проверьте ошибки, затем сохраните каждую форму по очереди.После этого я сделал то же самое с макросами.Не вносить изменения, но проверять работу.

Затем я запустил компактную версию и исправил данные с уязвимой машины.

Затем я использовал уязвимую машину для создания нового исполняемого файла внешнего интерфейса.

Вот и вот, это сработало.У затронутого пользователя теперь есть полностью функциональный интерфейс.

Это приведет к тому, что обновление внешнего интерфейса станет болью в движении кейстера, но, по крайней мере, теперь я знаю, что на самом деле будет работать.

Спасибо за вашу помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...