Как работать с формами в access. Работа с формами в Access

12.5 Работа с формами Access из VBA (объект Form )

Объект Access.Form, работа с формами Access средствами VBA, открытие формы Access, работа с элементами управления на форме Access

Один из важных частей Access, который обширно употребляется в приложениях — это формы. Формы Access предусмотрены для того же, для что и обыденные формы VBA — это до этого всего контейнеры для графических частей управления. Но устройство форм Access, их многофункциональные способности, приемы работы с ними и даже наборы частей управления, которые на их можно располагать, сильно различаются от обычных нам форм VBA, которые можно применять в Word и Excel.

Формы Access используются:

  • Для редактирования записей в таблицах базы данных Access и наружных источников данных. Для того, чтоб сделать такие формы, вообщем не необходимо никакого программирования — довольно сделать форму в режиме конструктора либо пользоваться мастером сотворения форм. Подключиться к наружному источнику данных (например, базе данных SQL Server либо Oracle) можно, воспользовавшись в Access меню Файл -> Внешние данные -> Связь с таблицами.
  • Как панели управления вашего приложения. Чрезвычайно нередко в приложении на базе Access создается исходная форма, которая раскрывается при запуске этого приложения. На данной для нас формы предусмотрены клавиши и остальные элементы управления для вызова остальных форм, отчетов, макросов, выхода из приложения и выполнения иных операций. Опосля закрытия остальных форм управления снова передается исходной форме.
  • Просто для предоставления юзеру способности выполнения всех действий. К примеру, форму можно употреблять для выбора юзером характеристик отчета, выгрузки данных во наружное приложение (например, Excel) и т.п.

Как работать с формами Access из VBA?

Первое, что нужно сказать — для работы с формами во почти всех ситуациях нам придется употреблять общий объект AccessObject, который представляет в Access не лишь формы, но и таблицы, макросы, модули, отчеты и множество остальных частей. Так как этот объект — всепригодный, то, естественно, большой помощи от Intellisense — подсказки в редакторе VBA у нас не будет. Обратиться к объекту формы можно через коллекцию AllForms, которая доступна через объекты CodeProject и CurrentProject. К примеру, получить информацию о всех формах в базе данных Access можно так:

Dim oA As AccessObject

For Each oA In CurrentProject.AllForms

Debug.Print oA.Name

Next

Если вы будете обращаться к формам в коллекции AllForms по индексу, обратите внимание, что нумерация форм в данной коллекции начинается с 0. Обращаться к элементам в данной коллекции можно и по имени:

Debug.Print CurrentProject.AllForms("Форма1").IsLoaded

Специальное свойство IsLoaded описывает, открыта ли эта форма (то есть загружена ли она в оперативную память).

Программным образом формы можно отыскать и остальным методом. Все открытые формы Access автоматом помещаются в коллекцию Application.Forms и представляются в виде объекта Form. Это — уже обычный объект, характеристики которого соответствуют свойствам формы, легкодоступным через графический интерфейс. К примеру, ежели форма Форма1 открыта, получить информацию о ее ширине можно так:

Debug.Print Application.Forms("Форма 1").Width

Это свойство можно применять и для конфигурации ширины формы, но для данной нам цели рекомендуется применять способ DoCmd.MoveSize(), который изменяет размеры активного объекта (например, нашей формы, ежели она активна):

DoCmd.MoveSize Width :=10000

Еще одна возможность: ежели вы работаете с кодом самой формы либо ее частей управления (например, действия Click клавиши, которая размещена на форме), то обратиться к объекту самой данной для нас формы можно совершенно просто. Для этого употребляется ключевое слово Form.

Как можно открыть форму?

Первое, что необходимо сказать — ежели в Word либо Excel нам непременно будет нужно открыть форму программным методом, то в Access это совершенно необязательно. Можно открыть форму и вручную из окна базы данных (см. рис. 12.1). Из этого же окна традиционно делается создание новейших форм либо изменение существующих.

Читайте также  Как с помощью гугла найти телефон. Как найти потерянный телефон: полное руководство

Рис. 12.1 Окно для работы с формами в Access

Еще один нередко используемый способ — просто запускать форму при открытии базы данных Access. Для этого в меню Сервис необходимо выбрать Параметры запуска и выбрать подходящую форму в перечне Вывод формы/страницы. Ежели при этом вы уберете все другие флажки, то приложение при открытии приложение может смотреться так, как показано на рис. 12.2:

Рис. 12.2 Все излишние способности Access спрятаны от пользователя

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

Если все-же необходимо открыть форму программным методом (например, из иной формы), то для данной цели можно применять способ DoCmd.OpenForm(). В самом простом варианте этот способ просто воспринимает параметр с именованием формы:

DoCmd.OpenForm "Форма1"

Если же форма уже открыта, то этот способ, естественно, не открывает форму поновой, а просто активизирует ее. Способ DoCmd.OpenForm() воспринимает также несколько необязательных характеристик, при помощи которых вы сможете настроить фильтр на отображение записей в форме, режим открытия формы (например, модальность) и т.п. Закрытие формы делается при помощи способа DoCmd.Close(). Ежели же для вас необходимо просто упрятать форму, чтоб сохранить введенные на ней юзером значения и показать их при последующем показе, можно просто сделать форму невидимой, назначив ее свойству Visible значение False.

Форма нам традиционно нужна не сама по для себя, а как контейнер для расположенных на ней частей управления. Традиционно элементы управления программным методом создавать не требуется — намного проще и удобнее поместить их на форму в режиме конструктора для формы. В наборе частей управления для формы предусмотрены как знакомые нам элементы управления — текстовые поля, надписи, клавиши, флажки и переключатели, так и новейшие элементы — вольная и присоединенная рамки объектов, разрывы страничек, подчиненные формы/отчеты и т.п. В верхнем правом углу Toolbox в конструкторе формы Microsoft Access находится особая клавиша Мастера. Ежели она нажата, то добавление на форму обычных частей управления (например, кнопки) приведет к возникновению окна профессионалы, который попробует посодействовать для вас автоматом сгенерировать подходящий код VBA для этого элемента управления (см. рис. 12.3)

Рис. 12.3 Мастер сотворения кнопок

Можно употреблять генерируемый мастером код как заменитель макрорекордера (которого в Access нет), чтоб осознать, как можно выполнить те либо другие действия.

Для чего же употребляются неординарные (по отношению к обыденным формам VBA) элементы управления:

  • Свободная рамка объекта — возможность расположить на форме OLE-объект (например, документ Word, лист Excel, презентация PowerPoint, набросок, звукозапись либо видеоклип), который может быть встроен в базу данных Access (но не помещен в таблицу!) либо находиться во наружном по отношению к базе данных Access файлу.
  • Присоединенная рамка объекта — то же самое, за исключением того, что он применяется для работы с объектами OLE, которые хранятся в таблицах снутри баз данных Access либо наружного источника данных. Это — самый удачный метод генерации отчетов в Word.

Например, представим, что в нашей базе данных Access находится таблица с 3-мя столбцами, как показано на рис. 12.4.

Рис. 12.4 Таблица для хранения шаблонов Word

В столбце File у нас хранятся шаблоны Word, которые употребляются для генерации отчетов. Мы помещаем на форму элемент управления Присоединенная рамка объекта с именованием WordTemplate. Опосля этого все, что необходимо для сотворения файла Word на базе шаблона из базы данных, у нас уже есть. Для клавиши, по нажатию на которой будет формироваться отчет, можно применять последующий код:

Читайте также  Как включить в компьютере микрофон. Как подключить микрофон к компьютеру

‘Получаем ссылку oFrame на объект присоединенной рамки на форме

Dim oFrame As BoundObjectFrame

Set oFrame = oForm.Controls("WordTemplate")

‘При помощи способа DLookup () скачиваем в него значение столбца File из таблицы

‘Templates, где номер строчки (значение столбца Num ) равно 1

oFrame = Application.DLookup("[File]", "Templates", "[Num] = 1")

 

‘Открываем объект в отдельном окне приложения — то есть создаем

‘документ Word на базе шаблон, загруженного в рамку объекта на форме

oFrame.Verb = acOLEVerbOpen

 

‘Активизируем объект приложения

oFrame.Action = acOLEActivate

 

‘Получаем ссылку на Word в переменную oWord

Dim oWord As Word.Application

Set oWord = GetObject(, "Word.Application")

 

‘Получаем ссылку на сделанный нами документ

Dim oDoc As Word.Document

Set oDoc = oWord.ActiveDocument

 

‘Дальше работаем средствами Word, к примеру, вставляем подходящий текст

‘в места, отмеченные закладками

Конечно же, правильнее будет при этом сделать эту присоединенную рамку объекта на форме вначале невидимой — чтоб юзер не мог этот объект активизировать по своей инициативе.

  • Элемент управления Разрыв страницы — описывает начало новейшего экрана формы.
  • Подчиненная форма/отчет — употребляется для размещения на форме подчиненных форм, таблиц либо отчетов.

Как уже говорилось, программным методом элементы управления в форме Access приходится создавать изредка. Ежели на форме для вас нужен переменный набор частей управления, то правильнее будет с самого начала сделать все нужные элементы управления и по необходимости делать их то видимыми, то невидимыми. Тем не наименее сделать программным методом элементы управления на форме тоже можно. Эта операция выполняется при помощи способа Application.CreateControl(), который воспринимает множество параметров — имя формы, на которой создается элемент управления, тип элемента управления, его месторасположение на форме и т.п.

Обращение к значениям частей управления на форме делается через коллекцию Controls, которая умеет работать с именами частей управления:

cSumInNumber = oForm.Controls("SumNumber").Value

 

Создание форм в базах данных Access

2.4. Системы управления базами данных и экспертные системы

2.4.5. Проектирование форм и работа с ними

Access предоставляет возможность вводить данные как конкретно в таблицу, так и с помощью форм. Форма в БД – это структурированное окно, которое можно представить так, чтоб оно повторяло форму бланка. Формы создаются из набора отдельных частей управления.

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

Форма предоставляет способности для:

  • ввода и просмотра инфы базы данных;
  • изменения данных;
  • печати;
  • создания сообщений.

Способы сотворения форм:

  1. Конструктор форм (предназначен для сотворения формы хоть какой сложности).
  2. Мастер форм (позволяет создавать формы разные как по стилю, так и по содержанию).
  3. Автоформа: в столбец (многостраничная – поля для записи выводятся в один столбец, в форме сразу показываются данные для одной записи).
  4. Автоформа: ленточная (все поля записи выводятся в одну строчку, в форме показываются все записи).
  5. Автоформа: табличная (отображение записей осуществляется в режиме таблица).
  6. Автоформа: сводная таблица.
  7. Автоформа: сводная диаграмма.
  8. Диаграмма (создается форма с диаграммой, построенной Microsoft Graph).
  9. Сводная таблица (создается форма Access, отображаемая в режиме сводной таблицы Excel).

Алгоритм сотворения форм следующий:

  1. Открыть окно БД.
  2. В окне БД выбрать вкладку Формы.
  3. Щелкнуть на пиктограмме Сделать, расположенной на панели инструментов окна БД.
  4. В появившемся диалоговом окне «Новая форма» Выбрать метод сотворения формы и источник данных.
  5. Щелкнуть на кнопочке ОК.

Рис. 1.

2.4.5.1. Создание формы с помощью Мастера

Вызвать Мастер форм можно несколькими методами. Один из их – выбрать Мастер форм в окне диалога Новенькая форма и щелкнуть на кнопочке ОК. Раскроется окно диалога Создание форм, в котором нужно отвечать на вопросцы каждого текущего экрана Профессионалы и щелкать на кнопочке Далее.


Рис. 2.

В первом окне нужно выбрать поля из источника данных (таблиц либо запросов). Для этого нужно открыть перечень Таблицы и запросы, щелкнув на клавишу, справа. Затем  доступные поля требуется перевести в Избранные поля, выделив их и щелкнув на клавишу  >>.


Рис. 3.

Например, выберем источник – таблицу Студенты и все ее поля, а потом нужно щелкнуть на кнопочке Далее.


Рис. 4.

В этом окне нужно выбрать наружный вид формы, к примеру в один столбец и щелкнуть Далее.


Рис. 5.

После выбора стиля формы (например, официальный), требуется перейти в крайнее окно, щелкнув на кнопочке Дальше. В крайнем окне Профессионалы требуется ввести имя формы и указать дальнейшие действия: Открыть форму для просмотра и ввода данных; Поменять макет формы.

Читайте также  Как стереть звук с видеофайла. Как убрать звук из видео?

После ввода имени формы (например, Студенты), выбора режима: «Открыть форму для просмотра и ввода данных» и щелчка на кнопочке Готово, получим последующую форму для ввода и просмотра записей в таблицу Студенты.


Рис. 6.

2.4.5.2. Создание формы с помощью Конструктора

Для сотворения формы Студенты нужно выполнить последующие действия:

1. Запустить програмку Microsoft Access и открыть БД.

2. В окне БД выбрать вкладку Формы. Выполнить щелчок по кнопочке Сделать. Покажется диалоговое окно Новенькая форма. В этом окне нужно выбрать из перечня пункт Конструктор. Потом в перечне "Выберите в качестве источника данных таблицу либо запрос" выбрать имя таблицы (например, Студент). Выполнить щелчок по кнопочке ОК. На экране покажется окно Форма 1.


Рис. 7.

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

4. Поля из перечня переместить на форму (по одному либо предварительно выделив с внедрением клавиши Shift и мыши, для выделения всех полей выполнить двойной щелчок мышью на заголовке окна Перечень полей).

5. Расположить поля на форме в подходящих местах по разработанному образцу.

6. Перемещение полей и их имен по форме производиться последующим образом:

  • выделить объект (поле с именем) щелчком мыши. Вокруг него покажутся маркеры перемещения и конфигурации размеров. Перемещать поле можно вкупе с привязанным к нему именованием либо раздельно от него;
  • для перемещения поместить указатель мыши на квадратик, находящийся в левом верхнем углу элемента. Указатель мыши в виде ладошки дозволяет перемещать объект совместно с привязанным к нему именованием, в виде ладошки с вытянутым указательным пальцем – перемещает один объект;
  • нажать клавишу мыши и, удерживая ее, буксировать поле либо его имя в необходимое место в форме. Потом отпустить клавишу мыши;
  • для конфигурации надписи, связанной с полем нужно выполнить на ней двойной щелчок мышью. В открывшемся диалоговом окне Надпись выбрать вкладку Макет и выполнить нужные конфигурации. Потом закрыть окно;
  • для конфигурации размеров поместить курсор на размерные маркеры, при этом курсор воспримет вид двунаправленной стрелки. Надавить клавишу мыши, буксировать в подходящем направлении, потом отпустить клавишу мыши;
  • для удаления поля выделить его, надавить кнопку Delete либо выбрать команду Правка / Удалить.

7. Сохранить форму, выбрав из меню Файл команду Сохранить как, и в открывшемся окне выбрать режим сохранения «в текущей базе данных», потом щелчок по кнопочке ОК.

8. Просмотреть форму в режиме Конструктора, выполнив щелчок по кнопочке Открыть.


Рис. 8.

9. Ежели вид формы не удовлетворяет, открыть форму в режиме Конструктор и внести нужные конфигурации, потом сохранить форму Файл — Сохранить либо выполнить щелчок по пиктограмме Сохранить.

Далее …>>>Тема: 2.4.6. Создание отчета как объекта базы данных

Оставьте комментарий

Adblock
detector