Справьтесь с управлением версиями электронной таблицы

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

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

Делает Microsoft, имеют стандартное управление версиями / решение для развертывания для этого или делают я должен придумать некоторое решение собственной разработки (электронная таблица проверяет с помощью ping-запросов базу данных по запуску для проверки версии),

6
задан leora 25 April 2010 в 20:40
поделиться

5 ответов

Если вы хотите обновить только код VBA, одно решение - это разделить весь код на XLA, который находится на доступном сервере. { {1}} тогда у пользователей Excel есть загрузчик надстроек, который получает последнюю версию с сервера, или вы можете встроить загрузчик в книгу. Существует рабочий пример восстановления загрузчика надстроек, доступный по адресу {{1} } http://www.decisionmodels.com/downloads.htm

1
ответ дан 17 December 2019 в 22:11
поделиться

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

0
ответ дан 17 December 2019 в 22:11
поделиться
  1. Определите свойство текущей версии . Используйте для этого любой способ, например константу в VBA.
  2. Найдите стандартный способ доступа к последней версии . Он может быть на общем диске, всегда по одному и тому же пути, или любым другим способом, который у вас есть.
  3. Если номер текущей версии < номер последней версии , то:
    • Запросить обновление
    • Показать процедуру обновления
    • Возможно выполнить некоторую блокировку обычных операций VBA, пока не будет выполнено обновление
0
ответ дан 17 December 2019 в 22:11
поделиться

Простое решение:

  1. Сохраните номер версии где-нибудь в книге (например, на скрытом листе, чтобы его случайно не удалили) или как переменную.
  2. Сохраните текстовый файл с номером последней версии на вашем общем ресурсе.
  3. Включите макрос, который автоматически считывает текстовый файл последней версии и сравнивает номер версии с номером версии в текущей рабочей книге. Если он слишком старый, просто покажите окно сообщения (сообщающее пользователю об обновлении) и закройте книгу.

Я использую аналогичный подход, и он отлично работает.

0
ответ дан 17 December 2019 в 22:11
поделиться

Добавьте в книгу настраиваемое свойство, например GUID, Integer, Date или что угодно. При запуске проверьте значение и определите, следует ли продолжать работу с VBA или какую бы реализацию вы ни выбрали. Обычно я открываю «общую» последнюю версию документа и проверяю ее настраиваемое свойство. Если пользователь не использует последнюю версию, отобразите сообщение, предлагающее пользователю получить последнюю версию. Обычно этого достаточно. Я делал это в течение многих лет с большим успехом для Access, Word и Excel VBA.

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

Довольно просто реализовать. Если вы решите вышеупомянутую проблему эффективно, люди начнут доверять «подсказке», и вы обнаружите, что это действительно простое и эффективное решение.

Если ваша книга привязана к базе данных, все становится немного сложнее. Как правило, вы не разрешаете пользователю хранить данные вне базы данных. Когда они хотят изменить данные, вы создаете для них книгу. После того, как они закончат изменение данных, вы импортируете данные. (Рабочая книга сохраняется для целей «резервного копирования», или пользователь может сохранить копию книги для справки или архива.) Это дает преимущество в том, что исключает необходимость поддерживать версию документа, поскольку документ является «виртуальным».

0
ответ дан 17 December 2019 в 22:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: