2017-01-01 15 views
0

У меня проблема со скоростью соединения, когда кто-то запускает запрос из базы данных Access. Задержка для загрузки данных значительно возрастает, когда пользователь запускает новые запросы через несколько минут, не используя приложение.Microsoft Access - как создать постоянное подключение к связанной базе данных между внутренними и внешними интерфейсами?

Я нашел this article для исправления этой проблемы, я сделал все шаги, но коды не работали для меня! У меня есть одна база данных и приложение, работающее в многопользовательской среде (9 человек).

Есть ли у кого-нибудь какие-либо решения/предложения?

Спасибо, Пеймана

+0

Когда вы говорите «но коды не работали для меня!» это не помогает нам. – nicomp

+0

Да Вы правы. Я должен был рассмотреть этот вопрос более конкретно. У меня нет сообщений об ошибках после добавления кода в форму. Это ничего не изменило, и медленное соединение оставалось неизменным! –

ответ

1

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

Самый простой способ «протестировать», если постоянное соединение исправит вашу проблему (ы), - это просто открыть связанную таблицу в вашем лицевом конце. (Любая таблица будет делать, пока это привязанная таблица, указывающая на ваш задний конец). Теперь запустите свой код или запрос. Если он работает быстро, то постоянное соединение поможет вашему делу. Если вышеприведенный простой 3-секундный тест НЕ исправьте производительность, то постоянное соединение рекомендуется, и это хорошая идея - это не повлияет на вашу производительность.

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

Некоторые простые способы, чтобы заставить или всегда иметь подключение к открытой задней части:

Просто открыть некоторую форму, связанную с присоединенной таблицы. Это может быть даже «тестовая» форма. Сразу после открытия формы вы можете установить ее видимое свойство = false.

Другим способом является определение глобальной переменной набора записей и открытие этой записи при запуске до таблицы на задней панели. Например:

Установить сначала = currentdb.OpenRecordSet («выберите * из tblTest»)

Имейте в виду, что если вы используете не скомпилированные приложения (ACCDB в отличие от скомпилированного ACCDE), чем любой ООН рукоятью ошибка выдует такие глобальные переменные, и, таким образом, ваше постоянное соединение будет потеряно.

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

+0

Спасибо, Альберт за вашу помощь. После разделения базы данных производительность приложения уменьшилась из-за скорости соединения, что нормально, поскольку база данных хранится на сетевом диске. Я сделал несколько вещей, чтобы ускорить соединение, и как-то все стало лучше. Что касается постоянного соединения, так как после минуты бездействия производительность и время задержки увеличились, я нашел решение для постоянного соединения –

+0

Не уверен, что вы подразумеваете под некоторой задержкой во времени - постоянное соединение просто всегда сохраняет открытый файл.Это открытое + закрытие файла, которое может занять очень много времени, поэтому сохранение открытого конца всегда устраняет задержку открытия/закрытия - в этом случае никогда не может быть проблем с «тайм-аутами». –