Создание формы с использованием инструмента «Несколько элементов»
Форма с несколькими пунктами,также известная как пустая, позволяет одновременно показывать сведения из нескольких записей. Данные расположены в строках и столбцах (аналогично таблице), и одновременно отображаются несколько записей. Однако поскольку это форма, существует больше параметров настройки, чем в таблице. Вы можете добавить такие функции, как графические элементы, кнопки и другие элементы управления. Форма с несколькими пунктами может напоминать таблицу при первом создании, как показано на рисунке ниже.
Создание формы с несколькими элементами
В области навигации щелкните таблицу или запрос с данными, которые должны отображаться в форме.
На вкладке Создание в группе Формы нажмите кнопку Несколько элементов. Если кнопка Несколько элементов недоступна, нажмите кнопку Другие формы и выберите пункт Несколько элементов.
Access создает форму и она отображается в режиме макета. В этом режиме можно вносить изменения в структуру формы при одновременном просмотре данных. Например, можно настроить размер текстовых полей в соответствии с данными. Дополнительные сведения о представлениях формы см. в статье Какой режим использовать — «Макет» или «Конструктор»?.
Чтобы приступить к использованию формы, перейдите в режим формы.
На вкладке Главная в группе Представления нажмите кнопку Представление и выберите пункт Режим формы.
Создание формы в Access
В форме Access, как на витрине магазина, удобно просматривать и открывать нужные элементы. Так как форма — это объект, с помощью которого пользователи могут добавлять, редактировать и отображать данные, хранящиеся в базе данных классического приложения Access, ее внешний вид играет важную роль. Если база данных классического приложения Access используется несколькими пользователями, хорошо продуманные формы — залог точности данных и эффективности работы с ними.
Создать форму на компьютере в базе данных Access можно несколькими способами. В этой статье мы рассмотрим наиболее распространенные из них.
Примечание: Информация, приведенная в этой статье, не относится к веб-базам данных Access или веб-приложениям Access.
В этой статье
Создание формы из существующей таблицы или запроса в Access
Приложение Access создаст форму и отобразит ее в режиме макета. При необходимости вы можете изменить оформление, например настроить размер текстовых полей в соответствии с данными. Подробнее читайте в статье об использовании инструмента «Форма».
Создание пустой формы в Access
Чтобы создать форму без элементов управления и заранее отформатированных элементов, выполните следующее. На вкладке Создание нажмите кнопку Пустая форма. Откроется пустая форма в режиме макета, и отобразится область Список полей.
В области Список полей щелкните знак плюс ( +) рядом с одной или несколькими таблицами, содержащими поля, которые нужно включить в форму.
Чтобы добавить поле к форме, дважды щелкните его или перетащите на форму. Чтобы добавить сразу несколько полей, щелкните их по очереди, удерживая нажатой клавишу CTRL. Затем перетащите выбранные поля на форму.
Примечание: Порядок таблиц в области Список полей может изменяться в зависимости от выбранной части формы. Если не удается добавить поле в форму, выберите другую часть формы и повторите попытку.
С помощью инструментов в группе Элементы управления на вкладке Работа с макетами форм можно добавить в форму эмблему компании, заголовок, номера страниц, дату и время.
Если требуется добавить в форму другие виды элементов управления, откройте вкладку Конструктор и выберите нужные элементы в группе Элементы управления.
Создание разделенной формы в Access
Разделенная форма позволяет одновременно отображать данные в двух представлениях: в представлении формы и в режиме таблицы. То есть вы можете использовать возможности обоих этих представлений в одной форме. Например, можно быстро найти запись в режиме таблицы, а затем просмотреть или изменить ее в представлении формы. Эти две части формы связаны с одним и тем же источником данных и всегда синхронизированы друг с другом.
Чтобы создать новую разделенную форму с помощью инструмента «Разделенная форма», в области навигации щелкните таблицу или запрос с нужными данными, а затем на вкладке Создание нажмите кнопку Другие формы и выберите пункт Разделенная форма.
Access создаст форму, которую можно изменять по своему усмотрению. Например, при необходимости можно настроить размер текстовых полей в соответствии с данными. Подробнее о работе с разделенными формами читайте в статье о создании разделенной формы.
Создание формы, отображающей несколько записей, в Access
Форма нескольких элементов (также называется ленточной) удобна, если требуется отобразить несколько записей. Кроме того, ее легче настроить, чем таблицу. Такую форму можно создать с помощью инструмента «Несколько элементов».
В области навигации щелкните таблицу или запрос с данными, которые должны отображаться в форме.
На вкладке Создание нажмите кнопку Другие формы и выберите пункт Несколько элементов.
Приложение Access создаст форму и отобразит ее в режиме макета. В этом режиме можно вносить изменения в структуру формы при одновременном просмотре данных. Например, можно настроить размер полей в соответствии с данными. Подробнее читайте в статье Создание формы с помощью инструмента «Несколько элементов».
Создание формы, содержащей подчиненную форму, в Access
При работе со связанными данными, хранящимися в отдельных таблицах, часто приходится просматривать их из нескольких таблиц или запросов в одной и той же форме, поэтому подчиненные формы отлично подойдут в такой ситуации. В зависимости от потребностей подчиненные формы можно добавлять несколькими способами. Подробнее об этом читайте в статье Создание формы, содержащей подчиненную форму (форма с отношением «один-ко-многим»).
Создание формы навигации в Access
Форма навигации — это простая форма, содержащая элемент навигации. Формы навигации являются полезным дополнением любой базы данных, но особенно важны для баз данных, публикуемых в Интернете, так как область навигации Access не отображается в браузере.
Откройте базу данных, в которую нужно добавить форму навигации.
На вкладке Создание в группе Формы нажмите кнопку Навигация и выберите нужный стиль формы навигации.
Access создаст форму, добавит на нее элемент навигации и отобразит форму в режиме макета. Подробнее об этом читайте в статье Создание формы навигации.
Дополнительные сведения
Формы можно настраивать с помощью нескольких параметров. Выберите нужные из представленных ниже.
Если вы хотите иметь возможность выбирать поля, которые будут отображаться в форме, создайте форму с помощью мастера форм.
Добавление вкладок в форму позволяет упорядочить данные и сделать форму более удобной для восприятия, особенно, если форма содержит большое количество элементов управления.
Элемент управления «Веб-браузер» дает возможность отображать в форме веб-страницы. Вы можете связывать его с полями и элементами управления базы данных, чтобы динамически определять отображаемую страницу. Например, с помощью адресов в базе данных можно создавать настраиваемые карты на сайте, или использовать сведения о товаре в базе данных для поиска объектов на веб-сайте поставщика.
Элементы управления в Access размещаются вдоль направляющих линий (макетов), которые позволяют выравнивать элементы управления в форме. Узнайте, как перемещать и изменять размер отдельных элементов управления.
Создание пользовательской ленты в Access
Лента — полоса в верхней части окна программы, которая содержит группы команд, — является компонентом Пользовательский интерфейс Microsoft Office Fluent. The Пользовательский интерфейс Office Fluent provides a single home for commands in Access.
По мере того как вы начнете создавать более сложные приложения с помощью Access, вы можете настроить ленту Office Fluent, чтобы упростить работу с ними. Например, можно скрыть некоторые или все вкладки по умолчанию, чтобы пользователи не могли использовать определенные команды, или создать новые настраиваемые вкладки, содержащие только нужные команды.
Во Microsoft Office, в Пользовательский интерфейс Office Fluent, для настройки ленты используется язык XML. Поэтому некоторые базовые знания по XML могут быть полезными. В этой статье не охватывается XML-концепций, но в ней есть базовая процедура настройки ленты и некоторые примеры XML, которые можно изменить в соответствии со своими потребностями.
В этой статье речь в этой статье говорится о том, как создавать собственные пользовательские ленты с помощью XML. Если вы хотите использовать встроенные инструменты для изменения существующих лент, см. параметры ленты в Office.
В этой статье
Методы настройки ленты
В Access настроить ленту, создав XML-код настройки, а затем добавив код или настроив свойства базы данных, которые access будет использовать при создании ленты. С помощью XML можно скрыть существующие вкладки, а также добавить новые вкладки, группы команд и команды. В этой статье вы найдете команды, которые встроены в Access (например, «Найти», «Сортировка» и «Сохранить»), а также как добавить команды, которые запускают макрос Access, который вы создали.
XML можно хранить в нескольких местах, но один из простейших способов — сохранить его в системной таблице текущей базы данных. Этот процесс включает создание системной таблицы с именем USysRibbons, добавление XML-формата ленты и указание того, отображается ли настраиваемая лента для всей базы данных или для конкретной формы или отчета. Вы можете определить несколько настраиваемой ленты — одну для всего приложения, а дополнительную — для отдельных форм или отчетов в базе данных.
Создание и применение пользовательской ленты
В следующих разделах приводится пошаговая процедура создания и применения настраиваемой ленты.
Подготовка
Отображение системных таблиц в области навигации По умолчанию системные таблицы не отображаются в области навигации, поэтому сначала необходимо изменить параметр в диалоговом окне «Параметры переходов», чтобы таблица USysRibbons отображалась после создания. Это можно сделать следующим образом:
Когда база данных открыта в Access, щелкните правой кнопкой мыши на панели навигации в верхней части области навигации и выберите в этом меню пункт «Параметры навигации».
В диалоговом окне «Параметры переходов» в области «Параметрыотображения» выберите параметр «Показать системные объекты» и нажмите кнопку «ОК».
В области навигации появятся системные таблицы Access.
Отображение сообщений об ошибках пользовательского интерфейса надстройки Сообщения об ошибках — это ценный источник информации при создании XML-контента для настройки ленты и устранении неполадок, поэтому мы делайте так, чтобы они отображались в Access. Это можно сделать следующим образом:
Выберите Файл > Параметры.
Щелкните «Параметры клиента».
В области «Общие»выберите поле «Показать ошибки пользовательского интерфейса надстройки» и нажмите кнопку «ОК».
Создание системной таблицы USysRibbons
Используйте эту процедуру для создания системной таблицы USysRibbons. Позже вы будете использовать эту таблицу для хранения XML-данных настроек ленты.
На вкладке Создание в группе Таблицы нажмите кнопку Конструктор таблиц.
Добавьте в таблицу следующие поля: Обязательно введите имена полей в точности так, как показано на этом поле.
При этом в эту таблицу можно добавить дополнительные поля, например поле «Комментарии», чтобы описать функцию XML-поля ленты.
Выберите поле «ИД». На вкладке Конструктор в группе Элементы нажмите кнопку Ключевое поле.
На панели быстрого доступа нажмите кнопку Сохранить или нажмите клавиши CTRL+S. Привязим новую таблицу к USysRibbons.
Добавление XML-настроек ленты в таблицу USysRibbons
В данном примере необходимо запретить пользователям базы данных использовать средства на вкладке «Создание». Кроме того, вам нужно создать новую вкладку «Настраиваемая вкладка» с командой «Ввести», как показано на рисунке ниже.
Конфигурация создается xML, как по следующей процедуре.
В области навигации щелкните правой кнопкой мыши таблицу USysRibbons и выберите в меню пункт «Таблица данных».
Добавьте в таблицу следующие данные: Вы можете скопировать XML-образец из этой статьи и вкопировать его непосредственно в таблицу.
Этот XML-документ сначала предписывает Access не начинать с нуля, то есть отображать вкладки ленты по умолчанию. После этого Access будет скрывать только одну из вкладок по умолчанию (вкладка «Создание»). Наконец, она создает новую вкладку ленты с именем «Настраиваемая вкладка», добавляет на нее группу команд «Настраиваемая группа» и добавляет в нее команду «Ввести». Дополнительные сведения об этом примере и его настройке в соответствии со своими потребностями см. в разделе «Пример XML».
Закроем таблицу USysRibbons, а затем закроем и снова откроете базу данных.
Применение пользовательской ленты
Теперь, когда пользовательский XML-формат ленты сохранен в таблице, в зависимости от того, хотите ли вы применить ленту к всей базе данных или к определенной форме или отчету, сделайте следующее:
Применение пользовательской ленты к базе данных
Выберите Файл > Параметры.
Щелкните «Текущаябаза данных», а затем в области «Параметры ленты» и «Параметры панели инструментов» выберите список «Имя ленты», а затем — нужный вариант — «Моя вкладка».
Применение пользовательской ленты к определенной форме или отчету
В области навигации щелкните правой кнопкой мыши форму или отчет, к которые вы хотите применить настраиваемую ленту, и выберите в shortcut-меню пункт «Конструктор».
Если окно свойств не отображается, нажмите клавишу F4.
Убедитесь, что в верхней части области свойств в списке выбран тип объекта (форма или отчет).
На вкладке «Другие» на странице свойств щелкните список «Имя ленты», а затем щелкните ленту, которая будет отображаться при открытие формы или отчета (в данном случае — «Моя вкладка»).
На панели быстрого доступа нажмите кнопку Сохранить или нажмите клавиши CTRL+S.
Закроем форму или отчет, а затем дважды щелкните их в области навигации, чтобы снова открыть.
Отобразится выбранная лента.
После проверки правильности работы пользовательской ленты можно снова скрыть системные таблицы, вырезав следующие данные:
Щелкните правой кнопкой мыши на панели навигации в верхней части области навигации и выберите в ярлыке пункт «Параметры навигации».
В диалоговом окне «Параметры переходов» в области «Параметрыотображения» отобразите поле «Показать системные объекты» и нажмите кнопку «ОК».
Восстановление ленты по умолчанию
Чтобы прекратить использование пользовательской ленты и восстановить ленту по умолчанию, воспользуйтесь одной из следующих процедур в зависимости от того, используется ли она всем приложением, а также с помощью определенной формы или отчета.
Восстановление ленты на уровне приложения по умолчанию
Выберите Файл > Параметры.
Щелкните «Текущаябаза данных», а затем в области «Параметры ленты» и «Параметры панели инструментов» удалите содержимое окна «Имя ленты».
Закроем и снова откройте базу данных.
В Access по умолчанию отображаются вкладки ленты. XML-файлы ленты остаются в таблице USysRibbons до тех пор, пока вы не удалите ее, поэтому если вы хотите восстановить для нее настраиваемую ленту, восстановите параметр «Имя ленты» на значение, которое было в ней ранее.
Восстановление ленты по умолчанию для формы или отчета
Откройте форму или отчет в конструкторе.
Если окно свойств не отображается, нажмите клавишу F4.
Убедитесь, что в верхней части области свойств в списке выбран тип объекта (форма или отчет).
На вкладке «Другие» окна свойств удалите содержимое окна свойства «Имя ленты».
Сохраните, закроем, а затем снова откроете форму или отчет.
XML-файлы ленты остаются в таблице USysRibbons до тех пор, пока вы не удалите ее, поэтому если вы хотите восстановить для нее настраиваемую ленту, можно вернуть значение в свойстве «Имя ленты» на значение, которое было в ней ранее.
Пример XML
Вот XML-пример, который использовался ранее в этой статье, и изображение созданной пользовательской ленты.
В этом примере вторая строка XML задает для атрибута startFromScratch параметр False. Если установить значение «Ложь», Access оставит все существующие вкладки без изменений и добавит новые вкладки справа от них. При установке для атрибута true удаляются все существующие вкладки и отображаются только те из них, которые вы создаете в XML. Даже если для атрибута startFromScratch установлено атрибут False,вы все равно можете скрыть отдельные вкладки. Это демонстрирует четвертая строка XML, которая скрывает встроенную вкладку «Создание». Остальные строки создают настраиваемую вкладку и настраиваемую группу, а затем добавляют в группу встроенную команду «Вложить», используя следующую строку XML:
Добавление дополнительных групп или элементов управления на настраиваемую ленту Вы можете добавить на ленту дополнительные группы и элементы управления, добавив похожие строки XML и подстроив различные значения idMso и подписей. Например, чтобы создать контрольный объект для экспорта выбранного объекта в Excel, используйте следующий XML-объект:
Чтобы добавить его в ту же группу, что и команда «Вставить», вставьте новую строку XML непосредственно перед строкой, в которую создается команда «Вставить». Чтобы создать новую группу, можно скопировать, ввести и изменить XML-код, который создает настраиваемую группу выше. В следующем примере демонстрируется XML, который добавляет два средства управления в настраиваемую группу.
Этот XML добавляет еще одну группу на настраиваемую вкладку. Как показано на рисунке ниже, новая группа содержит два средства управления — один, который инициирует операцию импорта из Excel, а другой — операцию экспорта в Excel.
Примечание: Все значения id и tab на пользовательской ленте должны быть уникальными.
Узнайте значение idMso команды Чтобы узнать значение idMso встроенной команды, используйте следующую процедуру:
Выберите Файл > Параметры.
Нажмите кнопку «Настроить ленту» или «Панель быстрого доступа».
Надвигая указатель на элемент, сведения о нем вы хотите получить. Access отобразит значение idMso для этого управления во во ветвях в скобки.
Добавление команды для запуска макроса Access Вы можете сделать настраиваемую ленту еще более гибкой, добавив команды, которые запускают макрос Access. Предположим, например, что вы создали макрос с именем MyMacro. Чтобы добавить на ленту команду, которая запускает макрос, добавьте в XML следующую строку:
Чтобы добавить к той же группе, что и в примере с командой «Вставить», вставьте новую строку XML непосредственно перед строкой, в которую создается команда «Вставить». В следующем примере демонстрируется XML,который добавляет команду.
Джентльменский набор разработчика Access
За время работы разработчиком Access набралась куча полезностей, которую считаю своим долгом выложить на Хабр. Многие из этих сниппетов находятся в сети, а некоторые находятся с трудом или безнадежно затеряны.
1. При работе с Access во время выполнения запроса возникают предупреждающие сообщения. Они довольно полезны во время отладки приложения, но для пользователей, как правило, не нужны. Отключить/включить их можно с помощью небольшого кода VBA:
Указав в виде параметра 0 для отключения и 1 для включения.
3. Не знаю, как бы я работал (наверное, работал бы так же, но гораздо медленнее), если бы не создал себе форму с поиском текста в содержимом запросов или форм. Очень часто необходимо производить какой-то рефакторинг или определять область применения таблицы или поля.
Для поиска по запросам поможет форма с кодом, который выполняет поиск в тексте запросов:
Для поиска по формам код немного объемнее:
4. Для того, чтобы сделать нашу работу чуть более солидной с точки зрения программирования и для возможности поиска ошибок при работе в режиме production на рабочей базе данных очень желательно добавить модуль VBA (tracing модуль) для записи происходящих событий в текстовый файл лога. Простая функция записи в текстовый файл будет очень полезна при отладке.
5. Этот код (из пункта 4) вполне можно вынести в отдельный файл базы данных Access и добавить во все существующие базы данных через References/Ссылки редактора VBA.
Если у вас имеется несколько файлов баз данных Access, то любой повторяющийся код можно вынести в отдельный файл. Единственное изменение, которое может быть необходимо сделать — в случае если в коде используется объект CurrentDb, то заменить его на CodeDb, дабы обращение шло к объектам той базы, которая используется в качестве хранителя общего кода.
6. Зачастую в запросах указывают в качестве параметра значение какого-либо поля открытой формы. Например, таким образом:
Но иногда необходимо указать параметр непосредственно в самом запросе. Сделать это можно так:
И далее из кода Access задать эти параметры и выполнить запрос:
Альтернативой может быть создание модуля VBA и добавление в него глобальной переменной, а также функции, возвращающей эту переменную.
Перед запуском запроса необходимо задать значение глобальной переменной (можно задать при открытии основной формы):
И в самом запросе указать параметром название возвращающей значение функции:
6.1 Этот способ получения параметра запроса можно использовать для частичного ограничения доступа к информации таблицы (в случае использования рабочей группы). При загрузке формы в зависимости от текущего пользователя установим значение глобальной переменной:
Далее установим запрет на просмотр и изменение таблицы demotable, а на запрос установим разрешение. Но так как запрос у нас использует таблицу, на которую нет прав, то данных он нам не вернет. Для того, чтобы он вернул данные необходимо к sql запроса добавить в конце
В результате пользователь Buh сможет иметь доступ ко всем строкам таблицы, а все остальные пользователи ко всем строкам за исключением первой 1000.
7. Для того, чтобы открыть форму из кода используется код:
В качестве «WhereCondition» можно указать условие, на какой записи формы необходимо её открыть (в случае, если форма привязана к данным). Указав, например, «ZakazID=56325», можно открыть форму именно со значением данных ZakazID равным 56325.
В качестве значения «OpenArgs» можно указать какие-либо параметры, которые на открываемой форме можно будет считать
в Private Sub Form_Load() с помощью Me.OpenArgs. Если необходимо передать несколько параметров, то можно передать их в виде текстовой строки, разделив символом. И далее в Private Sub Form_Load() разбить на части:
8. Многие забывают, что Access работает не только таблицами из файлов mdb/accdb, но и с таблицами других баз данных. Для экспорта уже существующих таблиц есть бесплатная утилита SQL Server Migration Assistant, хотя можно воспользоваться и встроенным функционалом или найти стороннее решение.
И напоследок небольшой хинт из разряда «Это знает каждый ребенок, но я вот этого не знал…»:
Знаете ли вы, что для того, чтобы при открытии файла Access не срабатывали макросы и не открывалась форма по умолчанию, необходимо держать нажатой клавишу Shift?
Из ленточной формы открыть форму с учетом значения одного из полей ленточной формы
Кратко проблема:
Есть ленточная форма с полями Название и Тип.
Как настроить скрипт так, чтобы по двойному клику на поле Название, открывалась бы различная форма в зависимости от того, какое значение в поле Тип?
Если возможных значений поля Тип только два, то все просто, на двойной клик поля Название вешаю событие:
Проблема в том, что если значений больше 2-х, то простое указание нескольких условий If, If. не работает, скрипт просто не реагирует на это.
Добавлено через 4 минуты
Все, проблему решил. Тему можно удалить.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Заполнение ленточной формы
Доброго здравия уважаемые специалисты. Сегодня, в процессе написания курсовой, столкнулся с.
Создание ленточной формы
Прошу помочь,так как я не разбираюсь в бд,у меня появилась такая проблемка.Не могу создать.
Обновление ленточной формы
Форумчане, возможен ли сабж средствами VBA? Сделал ленточную форму с двойным фильтром, фильтр на.
Создание запроса и ленточной формы
Всем добрый день. Мне необходимо сделать тестовое задание по работе, в Access работал последний.
У меня есть форма F_PI_ClientsInfoUpdating, в которую вложены две подформы:
1) название формы FP_PI_ClientsDetails (имя контрола DetailsContactsPI);
2) название формы FP_PI_ContractsDetails (имя контрола DetailsContactsPI)
Связка главной формы с подформой 1 происходит по значению ключевого поля ClientsID главной формы и такого же поля в подформе 1.
Связка подформы 1 с подформой 2 происходит по значению ключевого поля ContractsID подформы 1 и такого же поля в подформе 2.
Задача состоит в том, чтоб при выборе контракта в подформе 1 со значением поля «Сегмент» либо «PI» либо «SME» подформа 2 меняла Объект-источник на соответственно FP_PI_ContractsDetails или DetailsContractsSME_PF (названия подформ).
В главной форме на событии Открытие прописал код, но компилятор выдает
ошибку Run-time error ‘2465’: Application-defined or object-defined error
Как минимум 3 ошибки:
— на событии Open не все контролы видны и получают значение. Событие Загрузка (Open) уместнее для этой цели
— у формы нет свойства SourceObject. Оно есть у контрола-контейнера подформы
— чтобы интерфейс соответствовал требованиям, надо операцию замены источника проводить не только при открытии, но и на событии Текущая запись (Current), и на событии После обновления (AfterUpdate) поля Сегмент.
На событиях Load, Current формы и AfterUpdate роля Сегмент поместите обращение к процедуре replaceSourceObject
Добавлено через 17 минут
Ошибся выше. Загрузка это конечно Load