Как сделать форму модальной access

Обновлено: 05.07.2024

Чтобы создать форму из таблицы или запроса базы данных, в области навигации щелкните таблицу или запрос, содержащие данные для формы, а затем на вкладке Создание нажмите кнопку Форма. Приложение Access создаст форму и отобразит ее в режиме макета.

Как изменить форму в Access?

Для чего нужны формы в базе данных?

Форма в Access — это объект базы данных, который можно использовать для создания пользовательского интерфейса для приложения базы данных. "Связанная" форма напрямую связана с источником данных, например таблицей или запросом, и может использоваться для ввода, редактирования или отображения данных из этого источника.

Как сделать чтобы при открытии Access открывалась форма?

Что может содержать форма Субд?

СУБД Access позволяет создавать такие объекты БД, как формы. . Они могут содержать различные элементы: поля БД и подписи к ним, списки, флажки, переключатели, кнопки, вкладки и др. В них возможны вычисления для отдельных записей и их групп, а также наглядное графическое представление данных в виде диаграмм.

Какие виды форм существуют?

  • форма в столбец или полноэкранная форма;
  • ленточная форма;
  • табличная форма;
  • форма главная/подчиненная;
  • сводная таблица;
  • форма-диаграмма.

Чем отчет отличается от формы?

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

Как сохранить форму в Access?

Какие типы запросов в Access?

  • Запрос выбора является наиболее часто используемым типом запроса. .
  • Запрос действия – это запрос, который вносит изменения в саму БД. .
  • Нижняя панель есть бланк запроса по образцу (QBE-запроса).

Что можно делать с базами данных?

База данных (БД) — это программа, которая позволяет хранить и обрабатывать информацию в структурированном виде. БД это отдельная независимая программа, которая не входит в состав языка программирования. В базе данных можно сохранять любую информацию, чтобы позже получать к ней доступ.

Какую информацию содержит таблица в которой нет ни одной записи?

15. Содержит ли какую-либо информацию таблица, в которой нет ни одной записи? . пустая таблица содержит информацию о будущих записях; таблица без записей существовать не может.

Хотя вы всегда можете вводить данные непосредственно в таблицы базы данных, вам может быть проще использовать формы. Использование формы для ввода данных в Access, позволяет убедиться, что вы вводите нужные данные в нужном месте и в формате. Это поможет сохранить точность и согласованность вашей базы данных.

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

Зачем использовать формы?

Многие из нас часто заполняют формы, что мы почти не замечаем, когда нас просят использовать их. Формы настолько популярны, что они полезны как для человека, запрашивающего информацию, так и для лица, предоставляющего ее. Это способ требовать информацию в определенном формате, что означает, что человек, заполняющий форму, точно знает, какую информацию включить и куда ее поместить.

Работа с формами в Access

Это справедливо и для форм в Access. Когда вы вводите информацию в форму в Access, данные идут именно туда, куда она должна идти: в одну или несколько связанных таблиц. Хотя ввод данных в простые таблицы довольно прост, запись данных становится более сложной, так как вы начинаете заполнять таблицы записями из других источников в базе данных. Например, таблица Orders в базе данных хлебобулочных изделий может ссылаться на информацию о клиентах, продуктах и ценах, полученных из связанных таблиц. Запись с информацией об одном заказе может выглядеть так:

Работа с формами в Access

Фактически, чтобы увидеть весь заказ, вам также нужно будет посмотреть таблицу Order Items , где записываются элементы меню, составляющие каждый заказ.

Работа с формами в Access

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

Форма, содержащая те же данные, может выглядеть так:

Работа с формами в Access

Мало того, что формы облегчают процесс ввода данных для пользователей, но они также обеспечивают бесперебойную работу базы данных. С формами разработчики баз данных могут точно контролировать, как пользователи могут взаимодействовать с базой данных. Они могут даже устанавливать ограничения для отдельных компонентов формы, чтобы обеспечить ввод всех необходимых данных и что все они введены в допустимом формате. Это полезно, потому что сохранение данных, согласованных и организованных, необходимо для точной и мощной базы данных.

Работа с формами

Чтобы работать с формами в Access, вам нужно знать, как открыть форму, а также как просматривать и редактировать информацию в форме.

Чтобы открыть существующую форму:

Работа с формами в Access

Ввод и изменение данных

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

Как добавить новую запись

Существует два способа добавить новую запись в форму:

Работа с формами в Access

Работа с формами в Access

Как найти существующую запись для просмотра или редактирования

Существует два способа поиска и просмотра существующей записи с использованием формы, и оба они используют панель отклонения n в нижней части экрана:

    Чтобы просмотреть записи по одному, щелкните стрелки навигации. Стрелка вправо приведет вас к следующей записи, а стрелка влево приведет вас к предыдущей.

Работа с формами в Access

Работа с формами в Access

Чтобы сохранить текущую запись:

Работа с формами в Access

Чтобы удалить текущую запись:

Работа с формами в Access

Использование функций формы

Точная процедура, которую вы используете для заполнения формы, будет зависеть от содержания и дизайна формы, которую вы используете. Формы в вашей базе данных могут быть похожи на примеры в двух интерактивных документах ниже. Между ними они включают большинство функций, с которыми вы обычно сталкиваетесь в формах.

Допустим есть простая таблица со списком книг.

Таблица со списком книг

Создадим форму для работы с ней.

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

Форма книги

Добавим кнопку закрытия приложения.

Форма с кнопкой

Вызов окна параметры базы данных

Выбор формы

Форма выбрана

Ниже для справки приводится информация о самых важных свойствах, методах и событиях, которые разработчики предусмотрели для объекта Form в Access.

  • ActiveControl — позволяет определить, в каком элементе управления формы в данный момент находится фокус. Обычно используется для проверок. Это свойство, помимо формы, есть также у отчета и специального объекта Screen. При свойства Screen.ActiveControl можно определить не только имя активного в настоящий момент элемента управления, но и к какой форме или отчету он относится, например:
  • After… — это набор свойств позволяет заменить обычные событийные процедуры, назначив имя процедуры какому-либо событию (AfterInstall — вставки новой записи, AfterUpdate — изменению существующей записи и т.п.).
  • AllowAdditions — разрешается или нет пользователю добавление новой записи через данную форму. Для того, чтобы разрешить или запретить удаление записей, используется свойство AllowDeletions, для разрешения или запрета редактирования существующих записей — свойство AllowEdits. Остальные свойства Allow… относятся к разрешению или запрету для пользователя использовать различные режимы отображения информации.
  • AutoCenter — будет ли форма выводиться точно по центру окна приложения.
  • AutoResize — будет ли форма автоматически изменять свои размеры, подстраиваясь под размеры записей на ней. Это свойство нужно использовать очень осторожно, поскольку при таком автоматическом изменении размеров пользователь может увидеть совсем не то, что вы задумывали.
  • Before… — эти многочисленные свойства, так же, как и After…, заменяют событийные процедуры форм.
  • Bookmark — очень полезное свойство. Работает точно так же, как и одноименное свойство объекта Recordset в ADO (см. главу 9). Оно позволяет сохранить информацию о текущей записи (закладку на нее) в строковой переменной. Если мы присвоим этому свойству значение, сохраненное в строковой переменной, то форма вернется на ту запись, для которой была сохранена закладка.
  • BorderStyle — позволяет определить рамку на форме (напрямую, без вложенных объектов).
  • свойство Caption, конечно, определяет заголовок формы.
  • ChartSpace — специальный контейнерный объект, который может содержать в себе до 64 диаграмм. Используется для программного создания диаграмм на формах и программного изменения существующих диаграмм.
  • CloseButton — возможность не возиться со свойствами кнопки Close, а делать ее то доступной, то недоступной для пользователя прямо из свойств формы. Используется, конечно, чтобы не дать пользователю прервать выполнение каких-то действий (например, ввода данных) на полпути.
  • ControlBox — позволяет добавить или убрать меню Control (значок в самой левой части заголовка формы с командами Переместить, Свернуть, Развернуть и т.п.). Если убрать это меню, то в качестве бесплатного приложения уберутся и специальные иконки в правом углу заголовка формы — Свернуть, Развернуть и крестик Закрыть. Обычно это свойство используется для специальных модальных форм, например, выполняющих роль окон предупреждений. К сожалению, настраивать это свойство можно только тогда, когда форма открыта в режиме конструктора. Схожим образом работает свойство MinMaxButtons, которое позволяет определить, будут ли на форме видны кнопки Minimize и Maximize (тоже только в режиме конструктора).
  • Controls — одно из важнейших свойств. Возвращает коллекцию Controls со всеми элементами управления на данной форме.
  • Count — возвращает количество элементов управления на форме. Можно сказать, что относится к коллекции Controls, а не к самой форме.
  • CurrentRecord — возвращает номер записи из числа всех записей, которые открыты в форме. Это свойство доступно только на чтение.
  • CurrentView — очень важное и полезное свойство. Оно позволяет определить, в каком режиме открыта данная форма: в режиме конструктора, режиме формы или Datasheet View (то есть в виде таблицы данных). Свойство доступно только на чтение. Для переключения между режимами придется использовать DoCmd.Close() и DoCmd.OpenForm() с соответствующими параметрами.
  • Cycle — это свойство позволяет определить, что будет, когда пользователь нажмет на клавишу , находясь на последней записи по порядку перехода: перейдет ли он на первый элемент управления для следующей записи (по умолчанию), вернется ли на первый элемент управления для текущей записи или будет ходить кругом в рамках текущей страницы (экрана) формы.
  • DataEntry — возможность перевести форму в хитрый режим ввода только новых данных, когда для пользователя на форме будет доступна единственная запись — пустая новая. Никакие существующие записи пользователю видны не будут.
  • DataSheet… — эти многочисленные свойства позволяют определить внешний вид формы, когда она открыта в режиме DataSheet View, то есть в виде таблицы.
  • DefaultControl — интересная возможность, которая может сильно сократить количество набираемого кода, если вы создаете форму программным способом. При этом вы можете определить параметры для виртуального элемента управления DefaultControl любого типа. После того, как вы создадите новый элемент управления такого же типа, к нему будут автоматически применены те настройки, которые вы определили для DefaultControl. Такая возможность может быть очень удобной, например, если на форме вам программным способом придется создать десяток текстовых полей с одинаковым шрифтом, цветом фона и т.п. Например:

'Создаем текстовое поле по умолчанию

Set oDefaultTextBox = oForm.DefaultControl(acTextBox )

'Создаем новое текстовое поле на форме — уже с размером шрифта 12

Set oTextBox1 = CreateControl(oForm.Name, acTextBox, , , , 500, 500)

  • DefaultView — в каком режиме форма будет открываться по умолчанию. Пользователь сможет переключиться в другой режим, если это будет разрешено ему при помощи свойства ViewsAllowed.
  • Dirty — принимает значение True, если текущая запись была изменена, но еще не сохранена в базе данных. Как только текущая запись будет сохранена, значение этого свойства опять изменится на False. обычно используется для проверок во избежание потери занесенных пользователем данных.
  • DividingLines — будут ли на форме разделительные линии, отделяющие друг от друга области формы, а на формах, в которых на одном экране может быть много записей — еще и записи друг от друга.
  • FetchDefaults — будут ли на форме выводиться значения по умолчанию для столбцов при заполнении новой записи.
  • свойство Filter — исключительно важное свойство. Оно позволяет отфильтровать записи на форме (например, по диапазону дат, выбранных пользователем, по значению какого-либо столбца, которое пользователь может, например, выбрать при помощи ниспадающего списка и т.п.). В качестве значения этому свойству передается то выражение, которое должно идти после ключевого слова WHERE в запросах на языке SQL. Вместе с этим свойством обычно для включения фильтра используется свойство FilterOn. Например, если наша форма привязана к таблице со столбцом City и нам нужно в форме отобразить только те записи, для которых в этом столбце значится "Санкт-Петербург", можно использовать следующий код:

oForm.Filter = "City = 'Санкт-Петербург'"

Учтите, что это свойство используется для фильтрации записей только в самой форме. Если вы обращаетесь при помощи формы к данным в базе данных SQL Server или Oracle, то чаще всего бывает выгоднее применить фильтр в запросе, передаваемом на сервер (чтобы не скачивать в приложение лишние данные). Для этой цели используется свойство ServerFilter (см. ниже).

  • Form — это свойство позволяет получить ссылку на форму или отчет, которые помещены на форму при помощи элемента управления Подчиненная форма/отчет.
  • FrozenColumns — возможность определить количество закрепленных столбцов — то есть столбцов, которые не будут уходить за экран при прокрутке формы вбок. Это свойство доступно только на чтение. Для настройки параметров в форме предлагается использовать на графическом экране команду Закрепить столбцы в меню Формат.
  • HasModule — это свойство определяет, есть ли у данной формы или отчета свой собственный модуль класса (по умолчанию нет). При помощи пользовательского модуля класса можно добавить для формы свои собственные свойства и методы или переопределить существующий. Обычно такая возможность, как и вообще работа с пользовательскими классами в VBA, используется только в очень больших и сложных проектах со специфическими требованиями.
  • Свойства HelpFile и HelpContextId позволяют определить файл справки (и закладку в нем) для данной формы.
  • Hwnd — позволяет вернуть дескриптор окна Windows для данной формы. Используется при работе с Windows API.
  • InputParameters — позволяет вернуть (в виде строкового значения) информацию о параметрах, которые были переданы на источник данных при выполнении запросов, результаты которого были загружены в форму.
  • KeyPreview — это свойство определяет, кому будут передаваться нажатия клавиш — только активному элементу управления на форме (по умолчанию) или вначале форме, а затем уже активному элементу управления. При помощи этого свойства можно обрабатывать событийными процедурами для формы клавиатурные комбинации, в каком бы месте на форме не находился фокус, например, так:

Private Sub Form_Load()

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

Select Case KeyCode

MsgBox "Нажата клавиша F5!"

MsgBox "Нажата клавиша F6!"

  • MenuBar — возможность указать имя пользовательского меню, которое будет автоматически появляться при открытии данной формы или отчета. См. также свойства ShortcutMenuBar и Toolbar.
  • Modal — очень важное свойство. Если для него будет установлено значение True, то форма станет модальной. Это значит, что ее придется закрыть, прежде чем фокус можно будет передать другой форме. Если нужно отключить еще и панели инструментов и меню на время работы формы, нужно установить значение True для еще одного свойства Popup.
  • Module — это свойство позволяет получить ссылку на объект модуля класса для данной формы (см. свойство HasModule). С этим свойством нужно быть осторожным: обращение к нему, если форма находится в режиме конструктора, автоматически приведет к созданию нового модуля класса для формы (если для этой формы модуль класса еще не существует).
  • Moveable — позволяет определить, сможет ли пользователь перемещать форму на экране. на программное изменение местонахождения формы не влияет: программным способом перемещать форму можно всегда.
  • Name — это, конечно, имя формы, под которым она будет видна в окне базы данных.
  • NavigationButtons — это свойство позволяет определить, будут ли в распоряжение пользователя предоставлены кнопки для перехода по записям (на первую, последнюю, новую, следующую и т.п.) в нижней части формы.
  • NewRecord — позволяет определить, является ли текущая запись для формы новой записью. Это свойство используется для проверок.
  • Свойства ObjectPalette и PaintPalette позволяют определить для вновь создаваемых элементов на форме и для самой формы соответственно цветовую схему Windows. В отличие от Windows, Access позволяет использовать неограниченное количество цветовых схем одновременно. Цветовая схема будет сохранена вместе со схемой или отчетом. Свойство PaletteSource позволяет указать цветовую схему для формы или отчета в виде файлов на диске.
  • On… — эти многочисленные свойства, как и After… и Before…, заменяют событийные процедуры для формы, позволяя назначить событию имя макроса Access или процедуры VBA. Единственное свойство, о котором нужно сказать особо — это свойство
  • OnTimer. Оно позволяет определить реакцию на события, которые автоматически генерируются Access через определенный интервал времени, определяемый при помощи свойства TimeInterval.
  • Свойство OpenArgs позволяет получить доступ к параметру, передаваемому форме при ее открытии методом DoCmd.OpenForm().
  • OrderBy — свойство, которое позволяет настроить сортировку записей в форме. Принимает строковое выражение, состоящее из имени столбца, по которому производится сортировка, и направление сортировки, например:

oForm.OrderBy = "City DESC"

Непосредственно включение сортировки производится при помощи свойства OrderByOn.

  • ServerFilter — это свойство позволяет вставить фильтр в запрос, который при открытии формы производится к источнику данных (например, базе данных SQL Server или Oracle). При этом синтаксическую правильность строкового выражения, которое вы передаете в качестве фильтра, Access не проверяет. Чтобы включить работу с серверным фильтром, необходимо установить значение свойства ServerFilterByForm в true:

oForm.ServerFilter = "City = 'Санкт-Петербург'"

Удобнее всего помещать этот код в событийную процедуру для события OnOpen для формы.

  • ShortсutMenu — если установить значение этого свойства в False, то будет запрещен показ контекстных меню как для самой формы, так и для расположенных на ней элементов управления.
  • ShortcutMenuBar — позволяет определить свое собственное пользовательское контекстное меню, которое будет показываться по щелчку правой кнопкой мыши для формы или отчета. Это свойство предусмотрено, кроме формы и отчета, практически для всех элементов управления.
  • Tag — просто тег для формы. Можно считать его просто пользовательским атрибутом, который доступен только из программы и ни на что не влияет. Обычно используется для хранения служебной информации (например, меток). Принимает строковое значение с максимальной длиной 2048 символов.
  • TimerInterval — возможность установить значение (в миллисекундах), через которое будет срабатывать таймер формы (по умолчанию отключен). Обычно настраивается в событийной процедуре Load для формы. Чаще всего используется с событийной процедурой для события Timer. Применяется для организации ожидания (например, мы ждем, пока завершит работу какое-то внешнее приложение, проверяя его состояние каждые полсекунды), для анимации формы и т.п.
  • Toolbar — возможность определить панель инструментов, которая будет появляться каждый раз при открытой форме или отчете. Конечно же, чаще всего используется своя собственная пользовательская панель инструментов.
  • UniqueTable — используется тогда, когда форма привязана к форме или хранимой процедуре, которые ссылаются сразу на несколько таблиц, и нам нужно определить, как в этой ситуации будут вноситься изменения при конфликте.
  • ViewsAllowed определяет, в каком режиме пользователь может работать с формой — только в режиме Form view, только в режиме DataSheetView или в обоих режимах (по умолчанию). Режим конструктора доступен для пользователя всегда. Запретить его можно только при помощи разрешений.
  • Visible — этой свойство позволяет скрыть форму или опять сделать ее видимой.
  • свойство Width, конечно, определяет ширину формы (по умолчанию — в твипах, 1/1440 часть дюйма).
  • свойства WindowHeight, WindowLeft, WindowTop, WindowWidth определяют размеры окна формы.

По сравнению со свойствами методов у объекта Form совсем немного. Для большинства из них назначение понятно из названия:

  • GoTo() — перейти на указанную страницу многоэкранной формы;
  • Move() — переместить форму на экране.
  • Recalc() — пересчитать значения в вычисляемых элементах управления формы. Если форма находится в фокусе, то на графическом можно вместо этого просто нажать .
  • Refresh() — отобразить изменения, которые внесены в текущий набор данных в форме. Если нужно еще раз скачать данные из базы данных (например, они могли быть изменены другими пользователями, то нужно воспользоваться методом Requery().
  • Repaint() — перерисовать форму. Обычно используется в тех ситуациях, когда перед этим автоматическая перерисовка была отключена при помощи свойства Painting.
  • SetFocus() — установить фокус на форме.
  • Undo() — очистить информацию, которую пользователь ввел для текущей записи (если эта информация ошибочна). Переход на новую запись обычно приводит к сохранению текущей, поэтому после такого перехода метод Undo() уже не поможет.

Для формы предусмотрено также несколько десятков событий, которые на практике используются очень активно. Эти события включают в себя как стандартные события форм VBA (например, Load), так и специфические, такие, как Query — запрос к источнику данных, вставка/изменение/удаление записи через форму и т.п. С ними можно работать двумя способами: через специальные свойства формы (которые начинаются на Before…, After…, On… и т.п.) и обычным способом — через событийные процедуры. Для этого достаточно выбрать нужную форму в Project Explorer, нажать на кнопку , а затем выбрать нужную событийную процедуру (см. рис. 12.5).

Читайте также: