У нас есть много кода VBA в электронных таблицах, и много людей времени сохраняет их к локальным дискам. Когда мы хотим обновить электронные таблицы, мы выставляем новую версию к общему диску, но не имеем никакого способа осуществить это, люди не используют старые версии электронных таблиц.
Есть ли некоторая лучшая практика здесь для развертывания vba электронных таблиц поэтому, если кто-то загружает старую версию она открытая привычка или попросит, чтобы Вы обновили. Кажется, что это должно быть проблемой для любого настраиваемого решения, таким образом, я имел бы через MS, будет иметь некоторое решение здесь.
Делает Microsoft, имеют стандартное управление версиями / решение для развертывания для этого или делают я должен придумать некоторое решение собственной разработки (электронная таблица проверяет с помощью ping-запросов базу данных по запуску для проверки версии),
Если вы хотите обновить только код VBA, одно решение - это разделить весь код на XLA, который находится на доступном сервере. { {1}} тогда у пользователей Excel есть загрузчик надстроек, который получает последнюю версию с сервера, или вы можете встроить загрузчик в книгу. Существует рабочий пример восстановления загрузчика надстроек, доступный по адресу {{1} } http://www.decisionmodels.com/downloads.htm
Хотя я этого не делал. Я видел, как люди делают нечто подобное, когда они хранят код в библиотеках DLL в базе данных, а затем проверяют, что локальные такие же при запуске.
Простое решение:
Я использую аналогичный подход, и он отлично работает.
Добавьте в книгу настраиваемое свойство, например GUID, Integer, Date или что угодно. При запуске проверьте значение и определите, следует ли продолжать работу с VBA или какую бы реализацию вы ни выбрали. Обычно я открываю «общую» последнюю версию документа и проверяю ее настраиваемое свойство. Если пользователь не использует последнюю версию, отобразите сообщение, предлагающее пользователю получить последнюю версию. Обычно этого достаточно. Я делал это в течение многих лет с большим успехом для Access, Word и Excel VBA.
Одна реальная проблема - это люди, которые игнорируют запрос на обновление. Они будут делать это, потому что опасаются потери данных, ошибок в последней версии и так далее. Вы должны решить их проблемы, а не пытаться «заблокировать» их своим «решением» этой проблемы. Я настоятельно рекомендую вам всегда предоставлять средства для «импорта / обновления» данных до последней версии книги.
Довольно просто реализовать. Если вы решите вышеупомянутую проблему эффективно, люди начнут доверять «подсказке», и вы обнаружите, что это действительно простое и эффективное решение.
Если ваша книга привязана к базе данных, все становится немного сложнее. Как правило, вы не разрешаете пользователю хранить данные вне базы данных. Когда они хотят изменить данные, вы создаете для них книгу. После того, как они закончат изменение данных, вы импортируете данные. (Рабочая книга сохраняется для целей «резервного копирования», или пользователь может сохранить копию книги для справки или архива.) Это дает преимущество в том, что исключает необходимость поддерживать версию документа, поскольку документ является «виртуальным».