Как сделать поиск в форме access

Добавил пользователь Дмитрий К.
Обновлено: 04.10.2024

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

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

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

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

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

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

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

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

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


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

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


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

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


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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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


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

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


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


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

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

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

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

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


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

Да собственно. Формы - Создать - В новом окне с названием НОВАЯ ФОРМА берешь Конструктор - внизу выбираешь табличку, по которой надо создать, ДАлее появляется форма и ты размещаешь в нужном порядке информацию из этой таблицы. Ну а там разберешься.

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Я пытаюсь создать форму поиска для доступа к 2010 году.

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

Мне нужна группа параметров, чтобы я мог выбрать приведенное имя для целей бронирования.

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

Вот простой пример, который использует окно списка:

LastName - текст (255)

FirstName - текст (255)

Электронная почта - текст (255)

DesignView

Модуль VBA для этой формы:

Option Compare Database
Option Explicit

Private Sub Form_Load()
Me.lstSearchResults.RowSource = ""
End Sub

Private Sub btnSearch_Click()
Me.lstSearchResults.SetFocus
Me.lstSearchResults.Value = Null
Me.lstSearchResults.RowSource = _
"SELECT ID, LastName, FirstName FROM Clients " & _
"WHERE LastName LIKE ""*" & DQ(Me.txtSearchLastName.Value) & _
"*"" AND FirstName LIKE ""*" & DQ(Me.txtSearchFirstName.Value) & "*"""
End Sub

Private Function DQ(s As Variant) As String
' double-up double quotes for SQL
DQ = Replace(Nz(s, ""), """", """""", 1, -1, vbBinaryCompare)
End Function

Private Sub btnLookupEmail_Click()
If IsNull(Me.lstSearchResults.Value) Then
Me.txtEmail.Value = ""
Else
Me.txtEmail.Value = DLookup("Email", "Clients", "ID /media/main/ca/af/8d/caaf8d07c629f75128eaf249b281f741.jpg" alt="FirstOpened" >

Ввод "thompson" (без кавычек) и нажатие btnSearch заполняет окно списка клиентами WHERE LastName LIKE "*thompson*" . (Если вы посмотрите на код, вы увидите, что он также будет соответствовать первому имени, если вы его поставте.)

SearchResults

Выберите один из элементов в поле списка и нажмите btnLookupEmail , и адрес электронной почты будет отображаться в текстовом поле ниже.



То есть объект будет получать данные из другой таблицы или запроса.
Затем выбираем источник данных (таблицу специальностей):


Затем выберем нужные поля для помещения в поле:


Следующий шаг – сортировка. Установим по названию, но можно и по шифру.
Затем скрываем ключевой столбец



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




Результат выполнения запроса:



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

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