Как создать форму для заполнения двух таблиц
Перейти к содержимому

Как создать форму для заполнения двух таблиц

Microsoft Access "Разработка формы общего просмотра для базы данных, состоящей из двух связных таблиц"

Развивающие: уметь создать базу данных из двух связных таблиц, создать форму общего просмотра этих таблиц.

Требуется разработать Информационно-Поисковую Систему (ИПС) «Изделия Столярной мастерской ПЛ12»

База данных должна содержать две таблицы «Изделия» и «Комплектующие»

  • Код изделия -числовое, ключевое
  • Наименование изделия — текстовое
  • Изображение изделия — OLE
  • Код изделия -числовое
  • Наименование материала — текстовое
  • Количество — числовое
  • Единица измерения — текстовое
  • Цена -денежное

Таблицы связаны по полю КОД связью один ко многим.

Занести данные — пять изделий и к каждому его комплектующие.

  • Следующая запись
  • Предыдущая запись
  • Выход
  • Добавление
  • Удаление
  • Список всех изделий
  • Создать общее меню ИПС

1. Создадим Базу Данных «Мастерская»

Открыть программу ACCESS

2. Щёлкнуть по строке Создать файл (в правой части окна)

В открывшемся окне, в правой части

щелкнуть по строке Новая база данных

В открывшемся окне, в строке Имя файла, с клавиатуры ввести Мастерская

Откроется стандартное рабочее окно программы ACCESS

1. Для создания таблиц в окне Объекты щёлкнем по строке Таблицы, в окне справа по строке Создание таблицы в режиме конструктора

В строке имя поля набираем имя первого поля таблицы Изделия — это Код, нажимаем клавишу Ввода (Enter), курсор переместится во второй столбец Тип данных. Щёлкнуть по кнопке N , откроется список всех типов полей, выбрать числовое. В стандартной строке щёлкнуть по кнопке ключевое поле

Кнопкой ввода возвращаем курсор в столбец Имя поля. Аналогично описываем все поля таблицы Изделия

Закрываем окно Таблица1, щёлкнув по кнопке На запрос о сохранении отвечаем ДА

В открывшемся окне Сохранение с клавиатуры вводим имя таблицы Изделия и щёлкаем ОК

Появится стандартное окно программы ACCESS

Аналогично создадим таблицу Комплектующие

На запрос о создании ключевых полей ответить НЕТ

Установим связь между таблицами по полю Код. Щёлкаем по значку Схема данных

Выделяем таблицу Изделия и щёлкаем по кнопке Добавить, выделяем таблицу Комплектующие и щёлкаем по кнопке Добавить, затем щёлкаем по кнопке Закрыть.

Откроется следующее окно

Установить курсор на поле Код в таблице Изделия и не отпуская левой кнопки мыши перетащить курсор на поле Код в таблице Комплектующие, отпустить курсор.

Проставить галочки (просто щёлкнуть мышью) во все маленькие окнам

И щёлкнуть по кнопке Создать. Откроется окно

Закрыть окно Схема данных (Щёлкнуть по кнопке в правом верхнем углу окна). На запрос о сохранении ответить ДА.

Заполнить таблицы Изделия и Комплектующие. В стандартном окне Access (Рисунок 10) быстро дважды щёлкнуть по таблице Изделия и ввести данные. В поле Изображение нажать правую кнопку мыши, в контекстном меню выбрать Вставить объект. В открывшемся окне выбрать Вставить из файла и в окне Обзор указать полный путь к файлу с рисунком изделия. Аналогично заполнить таблицу Комплектующие

Для создания подчиненной формы общего просмотра выбираем объект Форма и щёлкаем по строке создание формы с помощью мастера

В строке таблицы и запросы выбираем таблицу Изделия и стрелкой >> выбираем все поля этой таблицы. Затем выбираем таблицу Комплектующие и стрелкой > по одному выбираем все поля, кроме Кода и щёлкаем кнопку Далее.

Щёлкаем по строке Подчиненные формы и затем по кнопке Далее. Откроется окно

Выбираем вид Табличный и щёлкаем Далее Откроется окно

Выбираем любой стиль, например Официальный и щёлкаем Далее. Откроется окно

В строке Форма с клавиатуры вводим имя формы Общий просмотр и щёлкаем Готово

Откроется окно формы Общий просмотр

Создадим в ней кнопку Предыдущая запись, для чего откроем форму Общий просмотр в режиме Конструктор. Выбираем объект Формы, выделяем форму Общий просмотр, щёлкаем по кнопке Конструктор

В панели элементов выбираем значок Кнопка и рисуем кнопку в Форме, откроется окно

Выбираем Категорию Переходы по записям, Действие Предыдущая запись, щёлкаем Далее. Откроется окно

Выберем рисунок Указатель влево и щёлкнем Готово. Наша кнопка в Форме примет вид

Аналогично создадим Кнопку Следующая запись. Для создания кнопок Добавления и Удаления выбираем Категорию Обработка записей. Действие Добавить запись и Удалить запись. Для Кнопки выхода из Формы выбираем Категорию Работа с формой, Действие Закрыть форму. В результате Форма Общий просмотр примет вид

Создадим окно, открывающее список всех изделий. В панели элементов выбираем значок Поле со списком и рисуем его справа от рисунка

Щёлкаем в нём по строке Поиск записи в форме на основе значения, которое содержит список и затем Далее. Откроется следующее окно

Выделяем поле Наименование и стрелкой > выбираем его, щёлкаем Далее. Откроется окно

Щёлкаем Далее, в открывшемся окне в строке задайте подпись с клавиатуры вводим Выбор изделия и щёлкаем Готово

Форма примет вид

Для работы с Формой закрыть её в режиме Конструктор, щёлкнув в правом углу по кнопке и в стандартном окне ACCESS (рисунок 10) выбираем объект Формы и дважды щёлкаем по форме Общий просмотр.

Как создать форму для заполнения двух таблиц

Регистрация на форуме тут, о проблемах пишите сюда — alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите восстановить пароль

Поиск по форуму
Расширенный поиск
К странице.

На событие формы Form_AfterInsert() подвесьте выполнение запроса на добавление, но по моему в этом случае нужно в запросе прописать условие WHERE, чтоб запрос добавил нужную запись.

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

Формы ввода данных в Microsoft Excel

Форма в Microsoft Excel

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

Применение инструментов заполнения

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

Теперь давайте рассмотрим, как пользоваться этими двумя видами инструментов.

Способ 1: встроенный объект для ввода данных Excel

Прежде всего, давайте узнаем, как применять встроенную форму для ввода данных Excel.

  1. Нужно отметить, что по умолчанию значок, который её запускает, скрыт и его нужно активировать. Для этого переходим во вкладку «Файл», а затем щелкаем по пункту «Параметры».

Переход в параметры в Microsoft Excel

Добавление инструмента форма на панель быстрого доступа в Microsoft Excel

Инструмент форма добавлен на панель быстрого доступа в Microsoft Excel

Инструмент форма отображается на панеле быстрого доступа в Microsoft Excel

Шапка таблицы в Microsoft Excel

первое значение в таблице в Microsoft Excel

Запуск формы в Microsoft Excel

Форма открыта в Microsoft Excel

Ввод значений в форму в Microsoft Excel

Значения перенесы в таблицу в Microsoft Excel

Добавление второй строки в таблицу через форму в Microsoft Excel

Вторая строка заполнена в таблице в Microsoft Excel

Все значения в таблицу введены в Microsoft Excel

Навигация по форме в Microsoft Excel

Корректировка данных в форме в Microsoft Excel

Изменение произведено в таблице в Microsoft Excel

Удаление строки через форму в Microsoft Excel

Подтверждение удаления строки в Microsoft Excel

Закрытие формы в Microsoft Excel

Таблица отформатированв в Microsoft Excel

Способ 2: создание пользовательской формы

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

    Как и в предыдущем способе, прежде всего, нужно составить шапку будущей таблицы на листе. Она будет состоять из пяти ячеек с именами: «№ п/п», «Наименование товара», «Количество», «Цена», «Сумма».

Шапка таблицы создана в Microsoft Excel

Создание умной таблицы в Microsoft Excel

Окошко форматирования таблицы в Microsoft Excel

Отключение фильтра через вкладку Данные в Microsoft Excel

Отключение фильтра через вкладку Главная в Microsoft Excel

Фильтр снят в Microsoft Excel

Форма ввода данных на листе в Microsoft Excel

Таблица со списком товаров в Microsoft Excel

Переход к проверке данных в Microsoft Excel

Окно проверки вводимых значений в Microsoft Excel

Выбор списка в окне проверки вводимых значений в Microsoft Excel

Переход к выбору источника в окне проверки вводимых значений в Microsoft Excel

Адрес диапазона внесен в поле в Microsoft Excel

Закрытие окна проверки вводимых значений в Microsoft Excel

Список со значениями в Microsoft Excel

Выбранная позиция отобразилась в ячейке в Microsoft Excel

Наименование первой ячейки в Microsoft Excel

Наименование второй ячейки в Microsoft Excel

Наименование третьей ячейки в Microsoft Excel

присвоение наименования диапазону в Microsoft Excel

Сохранение книги в Microsoft Excel

Окно сохранения файла в Microsoft Excel

Переход в редактор макросов в Microsoft Excel

Редактор макросов в Microsoft Excel

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

Изменение наименования листа в редакторе макросов в Microsoft Excel

Поле в редкторе макросов отобразилось в Microsoft Excel

Sub DataEntryForm()
Dim nextRow As Long
nextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, 0).Row
With Producty
If .Range(«A2»).Value = «» And .Range(«B2»).Value = «» Then
nextRow = nextRow — 1
End If
Producty.Range(«Name»).Copy
.Cells(nextRow, 2).PasteSpecial Paste:=xlPasteValues
.Cells(nextRow, 3).Value = Producty.Range(«Volum»).Value
.Cells(nextRow, 4).Value = Producty.Range(«Price»).Value
.Cells(nextRow, 5).Value = Producty.Range(«Volum»).Value * Producty.Range(«Price»).Value
.Range(«A2»).Formula = «=IF(ISBLANK(B2), «»»», COUNTA($B$2:B2))»
If nextRow > 2 Then
Range(«A2»).Select
Selection.AutoFill Destination:=Range(«A2:A» & nextRow)
Range(«A2:A» & nextRow).Select
End If
.Range(«Diapason»).ClearContents
End With
End Sub

Но этот код не универсальный, то есть, он в неизменном виде подходит только для нашего случая. Если вы хотите его приспособить под свои потребности, то его следует соответственно модифицировать. Чтобы вы смогли сделать это самостоятельно, давайте разберем, из чего данный код состоит, что в нем следует заменить, а что менять не нужно.

Итак, первая строка:

«DataEntryForm» — это название самого макроса. Вы можете оставить его как есть, а можете заменить на любое другое, которое соответствует общим правилам создания наименований макросов (отсутствие пробелов, использование только букв латинского алфавита и т.д.). Изменение наименования ни на что не повлияет.

Везде, где встречается в коде слово «Producty» вы должны его заменить на то наименование, которое ранее присвоили для своего листа в поле «(Name)» области «Properties» редактора макросов. Естественно, это нужно делать только в том случае, если вы назвали лист по-другому.

Наименование для листа в Microsoft Excel

Теперь рассмотрим такую строку:

nextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, 0).Row

Цифра «2» в данной строчке означает второй столбец листа. Именно в этом столбце находится колонка «Наименование товара». По ней мы будем считать количество рядов. Поэтому, если в вашем случае аналогичный столбец имеет другой порядок по счету, то нужно ввести соответствующее число. Значение «End(xlUp).Offset(1, 0).Row» в любом случае оставляем без изменений.

Второй столбец таблицы в Microsoft Excel

Далее рассмотрим строку

If .Range(«A2»).Value = «» And .Range(«B2»).Value = «» Then

«A2» — это координаты первой ячейки, в которой будет выводиться нумерация строк. «B2» — это координаты первой ячейки, по которой будет производиться вывод данных («Наименование товара»). Если они у вас отличаются, то введите вместо этих координат свои данные.

Две первые ячейки таблицы с данными в Microsoft Excel

Переходим к строке

В ней параметр «Name» означат имя, которое мы присвоили полю «Наименование товара» в форме ввода.

Имя поля наименования товара в форме ввода в Microsoft Excel

.Cells(nextRow, 2).PasteSpecial Paste:=xlPasteValues
.Cells(nextRow, 3).Value = Producty.Range(«Volum»).Value
.Cells(nextRow, 4).Value = Producty.Range(«Price»).Value
.Cells(nextRow, 5).Value = Producty.Range(«Volum»).Value * Producty.Range(«Price»).Value

наименования «Volum» и «Price» означают названия, которые мы присвоили полям «Количество» и «Цена» в той же форме ввода.

Наименование полей количество и цена в Microsoft Excel

В этих же строках, которые мы указали выше, цифры «2», «3», «4», «5» означают номера столбцов на листе Excel, соответствующих колонкам «Наименование товара», «Количество», «Цена» и «Сумма». Поэтому, если в вашем случае таблица сдвинута, то нужно указать соответствующие номера столбцов. Если столбцов больше, то по аналогии нужно добавить её строки в код, если меньше – то убрать лишние.

Колонки в таблице в Microsoft Excel

В строке производится умножение количества товара на его цену:

.Cells(nextRow, 5).Value = Producty.Range(«Volum»).Value * Producty.Range(«Price»).Value

Результат, как видим из синтаксиса записи, будет выводиться в пятый столбец листа Excel.

Колонка для вывода суммы в Microsoft Excel

В этом выражении выполняется автоматическая нумерация строк:

If nextRow > 2 Then
Range(«A2»).Select
Selection.AutoFill Destination:=Range(«A2:A» & nextRow)
Range(«A2:A» & nextRow).Select
End If

Все значения «A2» означают адрес первой ячейки, где будет производиться нумерация, а координаты « — адрес всего столбца с нумерацией. Проверьте, где именно будет выводиться нумерация в вашей таблице и измените данные координаты в коде, если это необходимо.

Столбец с нумерацией в Microsoft Excel

В строке производится очистка диапазона формы ввода данных после того, как информация из неё была перенесена в таблицу:

Не трудно догадаться, что («Diapason») означает наименование того диапазона, который мы ранее присвоили полям для ввода данных. Если вы дали им другое наименование, то в этой строке должно быть вставлено именно оно.

Наименование полей для ввода данных в Microsoft Excel

Дальнейшая часть кода универсальна и во всех случаях будет вноситься без изменений.

Код в редакторе макросов в Microsoft Excel

Выбор элемента управления в Microsoft Excel

Указание границ кнопки в Microsoft Excel

Окно назначения макроса объекту в Microsoft Excel

Переименовывание кнопки в Microsoft Excel

Кнопка переименована в Microsoft Excel

Ввод данных в форму в Microsoft Excel

Значения первой строки внесены в таблицу в Microsoft Excel

Повторный ввод данных в форму в Microsoft Excel

Вторая строка добавлена в таблицу в Microsoft Excel

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

ЗакрытьМы рады, что смогли помочь Вам в решении проблемы.
ЗакрытьОпишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *