Как принудительно закрыть приложение Access, когда пользователь потерял соединение с сервером - PullRequest
0 голосов
/ 24 апреля 2019

Вопрос. Существует ли какой-либо способ принудительного закрытия доступа, чтобы ему не требовался доступ к внутреннему серверу для выхода?

Ситуация: у меня есть база данных Access 2016.Серверная часть находится на сетевом общем диске, который доступен только при подключении к локальной сети или по VPN.При загрузке выполняется проверка связи с сервером, если он обнаруживает, что копирует таблицы в локальные таблицы, если нет, он просто сообщает, что пользователь не может подключиться, и продолжает использовать старые данные.Пользователи много путешествуют и не всегда могут быть в VPN, поэтому идея состоит в том, что имеющимся у них данным не более нескольких дней.Кстати, я упоминал, что пользователи являются только потребителями информации, а не участниками, поэтому мне все равно, что они не могут писать в серверную часть.Таблицы содержат несколько записей по 100 тыс., Приложение просто помещает их в удобные отчеты для поиска и перекрестных ссылок.

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

Попытки решения: я пытался отсоединить таблицы и просто использовать временное соединение с бэкэндом для загрузки таблиц, когда они мне нужны в начале, однако это означало, что пользовательMicrosoft Trust Center запрашивал примерно 8 раз каждый раз, когда они загружали это, если у меня не было того, что каждый из них фактически сам открыл внутреннюю БД, дал им пароль для этого, и ничего из этого не практично.

Ответы [ 2 ]

0 голосов
/ 25 апреля 2019

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

0 голосов
/ 25 апреля 2019

Доступ не очень хорошо работает с удаленным BE..Если вы хотите быть на удаленной стороне с доступом, у вас есть 2 варианта:

  • Подключение через RDS .. пользователь подключается к серверу через удаленный рабочий стол .. все является "локальным" ... так что теперь проблемы с потерянными подключениями ... пока соединение RDP удерживается, все гладко и, что более важно, вы не не должно быть отключений BE, которые вызывают повреждение или потерю данных (подсказка: при использовании технологии RemoteApp конечному пользователю будет казаться, что он / она работает локально ... я использую его и это здорово)
  • Switch BE ... как я уже сказал, нецелесообразно использовать Access BE через удаленное соединение ... чтобы сделать это, переключение на MsSQL / MySQL / PostGre ... и т. Д. Даст вам истинную возможность удаленного подключения
...