...

Создание форм

Следующим шагом после создания таблиц и схемы данных идет создание форм ввода/редактирования. В отличие от Excel, данные в Access нормализованы, то есть разложены по разным таблицам согласно правилам нормализации – в результате заполнять таблицы путем простого ввода данных не удобно, так как часто вместо привычных пользователю наименований, обозначений ему придется забивать коды соответствующих справочников. Кроме того, прямой доступ к данным недопустим, когда предполагается раздача прав доступа пользователей на уровне объектов БД.

По этим причинам данные вводятся в БД через специальные формы ввода, создать которые можно несколькими способами. Самый простой – создать автоформу. Для этого на вкладке «Формы» жмем в меню кнопку «Создать». В результате выскочит диалоговое окно.

Если выбрать один из вариантов Автоформы и указать внизу источник данных (таблицу) – то после нажатия «ОК» будет создана форма. Ее можно открыть в конструкторе: выделив форму и нажав в верхнем меню «Конструктор».

Другой вариант – использование мастера-построителя. В том же окне нужно указать «Мастер форм» и нажать «ОК». Либо на вкладке проекта «Формы» выбрать «Создание формы с помощью мастера».

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

Если в проекте присутствует множество однотипных форм с разными источниками – то вместо запуска мастера можно просто создать копию формы (выделив форму – правой кнопкой – контекстное меню «Копировать/Вставить») и зайдя в конструктор изменить у нее источник.

Можно создавать форму вообще с нуля – просто зайдя в конструктор. Для этого нужно выбрать на вкладке «Формы» пункт «Создание формы с помощью конструктора».

При создании форм, размеры ее элементов (поля, списки, надписи и т. д.) берутся из настроек по умолчанию. Если они вас не устраивают – можно их заменить, сделав собственный шаблон форм, по которому будут создаваться все новые формы. Для этого создаем макет формы в конструкторе, размещая на ней все элементы, стиль которых хотите изменить. Форматируете их (меняете размеры, шрифт, цвет и т. д.) и сохраняете форму, например под именем Shablon_1. Затем меню Сервис – Параметры – Вкладка «Формы и отчеты» – и указываете в поле «Шаблон формы» имя вашего шаблона.

Так же для ускорения наведения марафета можно использовать групповой способ задания свойств элементов формы. Для этого в открытой в конструкторе форме нужно выделить окном группу элементов и указать нужное свойство – оно будет присвоено всем выделенным элементам, при условии, что оно доступно для всех (например у флажка нет параметров шрифтов, так как это логическое поле). Аналогично можно выравнивать группу элементов, например по левому/правому краю, задавать размер по наибольшему/наименьшему из них – так же выделив окном, затем правой кнопкой и в контекстном меню выбрать нужный пункт.

Однако, автопостроитель не создает на форме кнопок – а надо бы. Этим занимается другой мастер, который запускается уже в конструкторе форм.

Как видим, тексты подписей полей формы соответствуют тому, что вы написали в свойстве поля таблицы «Подпись». А если там пусто – за подпись пойдет название поля.

Вот и пригодилось подписывание полей таблицы – иначе пришлось бы исправлять данные в конструкторе формы. Ведь название полей на английском, а подписи на русском. Почему так – см. рекомендации по обозначению объектов БД.
Так же автоматом назначается режим выравнивания данных в полях форм: для числовых полей – по правому краю, для текстовых – по левому.

Однако есть одно неудобство в форме, созданной в примере. Согласно рекомендациям по нормализации БД в таблице tab_Raboti хранятся коды справочных таблиц – их и придется вводить через форму. Чтобы не заморачиваться, какой код чему соответствует, обычно для этого используют поля со списками, где источником списка служит таблица-справочник. Стало быть, нужно зайти в конструктор и преобразовать созданные мастером простые поля в поля со списком и сделать для них необходимые настройки.
В видео-примере показана групповая обработка полей формы – задание свойства (в данном случае ширину столбцов источника) сразу для всех списков – очевидно, что так быстрее, чем для каждого в отдельности.
Поясню некоторые свойства поля со списком, которые я задал:

  • Ограничиться списком = Да – при такой настройке пользователь сможет вводить только то, что есть в списке. При попытке ввести другое выскочит ошибка и система откатит ввод.
  • Автоподстановка = Да – очень полезное свойство. Начните вводить данные в поле списка – и он начнет «подкидывать» подходящие по первым символам строки.
  • Присоединенный столбец = 1 – показывает, какой столбец будет вставляться в поле
  • Ширина столбцов = 0;1 – в паре с ним идет свойство число столбцов. В данном случае оно 2. Ширина как я ее указал создает хитрый фокус: пользователь видит только второй столбец списка, а первый скрыт от него, но именно он (1) и будет вставляться из списка, так как свойство «Присоединенный столбец = 1». То есть оператору для наглядности показывают текстовое обозначение записи справочника, а вставляется ее код – этим и решается проблема неудобства заполнения таблиц кодами.

Еще одна полезная мелочь, показанная в видео – создание маски ввода, в данном случае для удобства ввода даты.

Заметим, до сих пор мы не коснулись не то что программирования, а даже макросов. В этом достоинство Аксес – низкий уровень вхождения для начинающих, и повод для ворчания профессионалов, когда им попадается "сбацанная" таким образом БД. В какой то мере они правы: от вредной привычки перекладывать работу на мастеров в последствии может быть немало проблем, связаных не пониманием того, что они собствено там наделали. Но как бы там ни было - в результате создание простеньких наколенных приложений типа «топ-шлеп» доступно любому, у кого хватит терпения дочитать этот цикл статей, а дальше все зависит от желания и упорства. Используя Access в связке с SQl-Server можно создавать совсем не детские приложения.

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

Было бы удобнее, если при запуске программы сразу бы появлялась кнопочная форма. Это можно сделать, задав настройки автозапуска. Для этого идем в Сервис – Параметры запуска. В поле «Вывод формы/страницы» указываем кнопочную форму. Там же можем задать название приложения, прицепить иконку, которая будет показываться в верхнем левом углу. Так же можно скрыть окно проекта – убрав галку «Окно базы данных» – в итоге при открытии проекта пользователь увидит только кнопочную и прочие формы. Обычно так и делают, чтобы операторы не лазили по таблицам и не портили макросы и запросы. Правда обходится такое дело очень просто – нужно лишь при запуске  удерживать Shift. Чтобы и это дело прибить – см. защиту от Shift. Но конечно, для продвинутых программеров и это не помеха.

Создание и редактирование мастерами отчетов аналогично созданию/редактированию форм, поэтому рассматривать (повторять) это не будем.

1 2 3 4 5 6 >>