Обновление модулей для пользователей

Frost_Imp
Дата: 10.03.2016 10:36:10
Комрады, приветствую!
Имеется разделенная БД Access (локально формы и запросы для каждого юзера, в сети - таблицы). Файл с формами я иногда обновляю: где-то код допишу, где-то форму исправлю). Раньше, когда базой только начали пользоваться и у юзеров было мало (или совсем отсутствовали свои запросы) обновление заключалось в простом удалении файла с формами и заменой его на новый. Сейчас это сделать проблематично без ручного пересохранения большого количества запросов, которые у каждого юзера свои.
Вопрос: как реализовать отдельное обновление модулей и форм внутри accdb так, чтобы со стороны юзера было меньше всего телодвижений?
_____________________
А что на самом деле хотел сказать "Frost_Imp" никто не знает, так как администрация форума попросила его быть вежливым.
\\\\
Дата: 10.03.2016 10:41:11
Frost_Imp, хранить настройки в другой БД. Или организовать автоматическое обновление пользовательских данных.
Frost_Imp
Дата: 10.03.2016 10:43:37
\\\\, настройки совсем отдельно - уже, наверное, поздно, переделки того не стоят.
А автоматическое обновление - это, извините, как?
\\\\
Дата: 10.03.2016 10:48:06
Frost_Imp, у меня есть БД, которая обновляется стандартно с заданного места. Пользователь запускает "пускатель", а тот проверяет актуальность версии и если надо обновляет и переписывает настройки пользователя, и/или просто запускает основную БД.
Frost_Imp
Дата: 10.03.2016 10:50:17
\\\\, поделитесь примером?
\\\\
Дата: 10.03.2016 11:08:03
Frost_Imp, свой рабочий вариант выкладывать не буду, в размер не укладываюсь, да и решает он специфические задачи (а править некогда).
Но вот несколько возможных вариантов решения
Как хранить версию базы?
OpenDatabase
Frost_Imp
Дата: 10.03.2016 11:11:31
Если фантазировать, как это могло бы быть...
1. В сетевом файле есть таблица, в которой лежит номер актуальной версии. Либо id обновления.
2. При каждом открытии пользовательского файла средствами VBA происходит запрос в эту таблицу и извлечение единственного либо последнего (соответственно) значения.
3. Это значение сравнивается со значением в модуле пользовательского файла, например "update_history". Если значения совпадают - ничего не происходит (ну или запускается обычная последовательность процедур). Если значения не совпадают - происходит запрос в таблицу примерно следующего вида:
№ обновления заменить
2 main.bas
3 main.bas
3 Form_frmResp.clc

Находим номер обновления (п.1), средствами VBA удаляем файл, имя которого указано в поле "заменить", экспортируем новое, которое лежит по заранее определенному пути. Сохраняем файл проекта. При необходимости повторяем процедуру.
4. В модуль "update_history" записываем номер обновления.

Коряво?
vmag
Дата: 10.03.2016 11:15:27
Frost_Imp
Сейчас это сделать проблематично без ручного пересохранения большого количества запросов, которые у каждого юзера свои


Это как? Еще ни разу не видел приложения в котором для каждого юзера свои запросы... Это нужно всем отдать только таблицы и сказать типа - ребята, а запросы каждый себе делайте сами ? Обычно запросы, формы, отчеты и модули для всех одинаковые и всё это вместе называется интерфейсом, который потом и обновляется на ура путем замены только одного файла (интерфейса). По нормальному, юзеры кроме форм и отчетов больше ничего и видеть то не должны, а если давать всем вольную на то, чтобы самому что-то ваять - то никакой речи об автоматическом обновлении интерфейса уже и быть то не может...
Frost_Imp
Дата: 10.03.2016 11:21:20
vmag, смотрите, для работы форм у меня все запросы либо в рекордсоурсах форм, либо в VBA. Сохраненные запросы - это когда в сети лежит файл на десяток миллионов записей, а юзеру нужна аналитика. Какая-то своя. Которая не нужна соседу справа и соседу слева. Он делает запрос и периодически к нему обращается. Или 20 запросов. То же самое делают соседи справа и соседи слева.
То есть мой Access делает 2 вещи:
1. Выполняет заранее запрограммированные функции
2. Служит хранилищем.
\\\\
Дата: 10.03.2016 11:22:46
Frost_Imp
Коряво?
Очень.
Первую ссылку не смотрел. Версия хранится в свойствах бд. Файл front-end копируется к пользователю с временным названием, туда программно добавляются/копируются пользовательские данные, старый front-end удаляется, новый переименовывается и запускается.