Все программисты сталкиваются с проблемой дизайна программных интерфейсов. Даже ответвление есть такое в дизайне. Но если у вас нет денег, чтобы оплатить работу модного дизайнера интерфейсов, то вчитываемся в ниженаписанное и делаем свои выводы.
Можно условно поделить все интерфейсы на кнопочные и менюшные. Здесь речь пойдет о втором варианте. Т.е. когда опорным моментом в управлении является меню.
Меню - это привычно, это удобно, это понятно. Чтобы создать свое меню, нужно нажать на панели инструментов правой клавишей меню, выбрать Настройка - Панели инструментов - Создать. Создаем свою панель. Дальше на нее курсор и выбираем свойства. Сразу же выставляем Строка меню и Изменения невозможны. Потом снимаем все галочки. Это чтобы никто строку с панели не утащил и не уничтожил. Дальше вытаскиваем на панель все нужные кнопочки и создаем новые подменю.
Первый этап пройден, принимаемся за второй. Интерфейс форм. Удобней всего построить разводящую поисковую форму.
Основные составляющие такой формы: список заказов (или подчиненная форма), свободные поля, кнопка поиска, кнопка перехода в заказ. Под словом "заказ" понимается некий объект, записи о котором вы вводите в базу. В такой форме с помощью ограничения записей в списке (через поиск или фильтрацию) вы находите нужную запись, потом устанавливаете на ней курсор и нажимаете на кнопку изменения. И вы в форме изменения записи. Она же форма добавления записи.
Чтобы одна и та же форма работала на изменение и добавление, делаем следующее. Вызываем форму из поиска с параметром "idObj=" & Me.Lst_Obj, а когда нужно вызвать ту же форму на добавление, то вызываем ее через другую кнопку или пункт меню без параметров. В код на загрузку такой формы добавляем:
If Not Me.FilterOn Then DoCmd.GoToRecord acDataForm, Me.Name, acNewRec End If
Получаем чистенькую форму, готовую к вводу записей. На кнопку Сохранить и Отмена вешаем классику DoCmd.Close, но перед этим добавляем в первом случае Me.Refresh, а во втором Me.Undo.
И вот так поэтажно делаем вложенную структуру из форм. Лучше всплывающих и модальных. Это исключит нелепые ошибки пользователей. Эта система используется во всех моих программах уже более пяти лет. Из опыта добавлю, что обучение пользователя занимает два-три часа и не требует повторов. Исправление каких либо вещей при такой структуре значительно упрощается. |