Как распространять обновления для клиентской части базы данных Access? - PullRequest
8 голосов
/ 05 февраля 2010

У меня есть база данных Access 2007, которую я разработал, которая подключается к SQL Server для реального хранения данных. Я использовал Package Solution Wizard для создания распространяемого установщика, который включал среду доступа (с файлом ACCDE), которую я использовал и установил на 15 или около того компьютерах. В любом случае, мой вопрос: каков наилучший способ распространения обновлений в этой базе данных? Прямо сейчас мне нужно обойти и удалить и переустановить. Это не проблема ... Мне просто интересно, есть ли другой путь.

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

Ответы [ 6 ]

5 голосов
/ 06 февраля 2010

Автоматизация внешнего интерфейса тривиальна. Это проблема, которая неоднократно решалась. http://autofeupdater.com от Tony Toews - одно из таких решений, которое чрезвычайно легко внедрить и полностью прозрачно для конечного пользователя.

4 голосов
/ 05 февраля 2010

Мы разработали vunccript 'launcher' для наших приложений доступа. Это то, с чем связано меню «Пуск» ПК пользователя, и оно выполняет следующие действия.

  • Он проверяет файл version.txt, расположенный на сетевом ресурсе, чтобы определить, содержит ли он текст, отличный от локальной копии
  • Если текст отличается, он копирует mdb для доступа и новый version.txt на жесткий диск пользователя.
  • Наконец, он запускает mdb в доступе

Чтобы распространять обновление на ПК пользователя, все что требуется, это изменить текст в version.txt на сетевом ресурсе.

Возможно, вы сможете реализовать нечто подобное этому

1 голос
/ 14 ноября 2017

Попробовав все вышеперечисленные решения (не только эти решения, но это общие предложения сообщества Access), я разработал систему полностью в Access с использованием VBA, которая позволяет административной БД создавать и публиковать объекты на клиентских БД без необходимость вмешательства пользователя или управления несколькими файлами БД.

Этот подход имеет несколько преимуществ: 1. Он упрощает процесс разработки благодаря наличию выделенной среды (административной БД) для разработки и тестирования, полностью отделенной от клиентских БД. 2. Это упрощает процесс обновления / распространения, позволяя разработчику в реальном времени выпускать обновления, которые клиентские БД могут реализовывать в фоновом режиме, без привлечения пользователей. Может также позволить разработчикам откатиться к предыдущим версиям, если это необходимо. 3. Он может использоваться как своего рода система управления изменениями в Access для разработчиков, которые хотят зафиксировать несколько изменений в объектах и ​​модулях и сохранить прошлые изменения. 4. Это позволяет упростить управление доступом пользователей, позволяя администратору легко назначать определенные объекты определенным пользователям / ролям без необходимости поддерживать несколько версий БД.

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

1 голос
/ 07 ноября 2015

Это очень старый пост, и я использовал автообновление до тех пор, пока он не перестал работать, поэтому я написал один из них, и за последние несколько лет он превратился в нечто, что я использовал со многими клиентами. Это так просто в использовании и нет интерфейса. Просто EXE и очень простой конфигурационный файл.

Пожалуйста, проверьте это здесь. Я также могу помочь с индивидуальными решениями, если ни одна из конфигураций не подходит для ваших нужд. http://www.dafran.ca/MS-Access-Front-End-Loader.aspx

1 голос
/ 10 сентября 2011
  • Создайте командный файл на сервере (сетевой диск).
  • Создать ссылку для быстрого доступа к этому пакетному файлу.
  • Скопируйте ярлык на рабочий стол пользователя.
  • Когда пользователь дважды щелкает по ярлыку, он копирует свежую копию из сети в локальную.
  • Замените старый файл database.adp на диске сервера при обновлении новой версии.
  • Каждый пользователь получает копию файла database.adp на своем компьютере.
  • Удалить предупреждение безопасности при открытии файла из общей сетевой папки здесь .

Пакетный файл

@ECHO OFF

REM copy from network drive to local
xcopy "Your_Network_Drive\database.adp" "C:\User\database.adp" /Y /R /F 

REM call your database file - Access 2007
"C:\Program Files\Microsoft Office\Office12\MSAccess.EXE" "C:\User\database.adp"  
0 голосов
/ 05 февраля 2010

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

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

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