Новости, советы и рекомендации для технических специалистов

  1. Создать поисковые запросы
  2. Создать форму поиска
  3. Используйте параметры поиска
  4. Это только выглядит сложно!

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

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

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

Создать поисковые запросы

Форма поиска на рисунке A заполняет один и тот же элемент управления списком информацией о продукте из трех разных поисков. Каждый поиск имеет отдельный фиксированный запрос. (Вы можете так же легко использовать поле со списком.)

Рисунок A: Используйте один элемент управления списком для отображения результатов трех разных задач поиска.

Первый шаг - решить, какую информацию вы хотите просмотреть в элементе управления списком. Каждый фиксированный запрос извлекает данные из тех же трех таблиц из Northwind, примера базы данных, которая поставляется с Access: Продукты, Категории и Поставщики. Основной SQL-оператор выглядит следующим образом:

ВЫБЕРИТЕ Products.ProductID, Products.ProductName, Suppliers.CompanyName, Categories.CategoryName, Products.QuantityPerUnit, Products.UnitPrice ОТ Категории INNER JOIN (Поставщики INNER СОЕДИНЯЮТСЯ ORDER BY Products.ProductName Создайте запрос, используя этот SQL, и назовите его qryLookupAll, как показано на рисунке B. ВЫБЕРИТЕ Products

Рисунок B: Показать все записи продукта.

Скопируйте приведенный выше запрос и добавьте выражение критерия:

Формирует! FrmLookup! TxtID в ячейку критериев ProductID, как показано на рисунке C. Не беспокойтесь, что форма и контроль еще не существуют. Если вы запустите запрос в этот момент, Access будет жаловаться, но он позволит вам создать запрос. Назовите запрос qryLookupID. Формирует

Рисунок C: Запрос собирает пользовательские данные из формы поиска для фильтрации результатов.

Скопируйте первый запрос во второй раз и добавьте следующее выражение в ячейку критериев ProductName, как показано на рисунке D : Как "*" & [Forms]! [FrmLookup]! [TxtDescription] & "*"

Назовите этот запрос qryLookupDescription.

Назовите этот запрос qryLookupDescription

Рисунок D: Это выражение критерия создает универсальную строку поиска.

Создать форму поиска

Несвязанная форма, показанная на рисунке A, выполняет три поиска:

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

Обратитесь к Таблице A для всех свойств формы и элементов управления. Сохраните форму как frmLookup. Форма установки свойства объекта Заголовок Поиск Продукты Полосы прокрутки Ни селекторы записей, ни кнопки навигации Нет текстового поля Имя Текстовое поле txtID Имя Кнопка команды txtDescription Имя cmdSearch Заголовок Кнопка команды поиска Имя Имя cmdClear Заголовок Кнопка команды очистки Имя Имя cmdAll Заголовок Все поле списка Имя lstResults Строка Тип источника Таблица / Запрос количества столбцов 6 заголовков столбцов Да Ширина столбцов 0 "; 2"; 2 "; 1"; 1,5 "; 0,5"; 0 "Связанный столбец 1

Таблица A: Элементы управления формы поиска и настройки свойств.

Пока форма находится в представлении «Дизайн», запустите редактор Visual Basic (VBE), нажав кнопку «Код» на панели инструментов «Дизайн формы». Введите процедуры обработки событий от Листинга A до Листинга F в модуле формы. Вернитесь в Access и сохраните форму. Список частных подпрограмм cmdAll_Click () 'Показать все записи. lstResults.RowSource = "qryLookupAll" End Sub Listing B Private Sub cmdClear_Click () 'Очистить элементы управления. txtID.Enabled = True txtID = vbNullString txtDescription.Enabled = True txtDescription = vbNullString lstResults.RowSource = vbNullString Конец подсписка C Частный Sub cmdSearch_Click () lstResults.Reques Конец подсписка D Истинный_документ = True End Sub Listing E Private Sub txtDescription_AfterUpdate () 'Заполнить элемент управления списком строкой поиска. txtID = vbNullString txtID.Enabled = False lstResults.RowSource = "qryLookupDescription" End Sub Listing F Private Sub txtID_AfterUpdate () 'Заполнить список управления значением ProductID. txtDescription = vbNullString txtDescription.Enabled = False lstResults.RowSource = "qryLookupID" End Sub

Используйте параметры поиска

С формой в представлении формы вы готовы к поиску. Если вам известно значение ProductID продукта, задача проста. Например, если пользователь вводит 3 в элемент управления Product ID и нажимает Enter, код отключает элемент управления Description и автоматически выполняет запрос. Кроме того, пользователь может нажать Поиск. В любом случае, событие After Update элемента управления txtID устанавливает для свойства Row Source элемента управления список значение qryLookupID. На рисунке E показаны результаты запроса в элементе управления списком.

Рисунок E: Поиск по значению идентификации продукта.

Нажмите Очистить, чтобы продолжить поиск. Найдите все продукты с шоколадом по названию, введя choc в поле Описание. На этот раз код использует qryLookupDescription в качестве свойства Row Source элемента управления списком. Выражение критерия запроса объединяет введенную вами строку choc с двумя символами звездочки, чтобы создать строку поиска * choc *. Элемент управления списком отображает совпадающие записи - те записи, которые содержат строку choc в любом месте поля ProductName, как показано на рисунке F. Как и следовало ожидать, нажатие кнопки «Все» отображает список всех записей продукта в элементе управления списком.

Как и следовало ожидать, нажатие кнопки «Все» отображает список всех записей продукта в элементе управления списком

Рисунок F: Отображение записей с использованием строки поиска.

Это только выглядит сложно!

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

Сьюзен Сэйлс Харкинс является независимым консультантом и автором нескольких статей и книг по технологиям баз данных. Ее последняя книга - « Освоение Microsoft SQL Server 2005 Express» с Майком Гандерлой, опубликованная Sybex. Другие виды сотрудничества с Gunderloy включают автоматизацию Microsoft Access 2003 с помощью VBA , Руководство по обновлению Microsoft Office System 2003 , экзамен ICDL Cram 2 и Руководство для абсолютных новичков по Microsoft Access 2003 , опубликованные Que. В настоящее время Сьюзен работает волонтером в качестве директора по публикациям Советники по базам данных , Вы можете связаться с ней по адресу [email protected] ,

О школе
О школе

О школе

Школа была открыта в 1959г. Первые выпускники были выпущены в 1966 г. Учредителем является МНО РТ, Горисполком. Координаты школы: Республика Татарстан, 420012, г. Казань, ул. Муштари д.6.
История

История

Школа № 18 была создана в 1959 году, как первая школа в республике Татарстан с углублённым изучением английского языка. Реформирование школьного образования проводится в школе по
Похожие новости /   Комментарии

    Обновления сайта

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

    О школе

    Школа была открыта в 1959г. Первые выпускники были выпущены в 1966 г. Учредителем является МНО РТ, Горисполком. Координаты школы: Республика Татарстан, 420012, г. Казань, ул. Муштари д.6. Полное название- Средняя школа №18 с углублённым изучением английского языка Директор: Шевелёва Надия Магсутовна. Научный руководитель: Русинова Сазида Исмагиловна,

    История

    Школа № 18 была создана в 1959 году, как первая школа в республике Татарстан с углублённым изучением английского языка. Реформирование школьного образования проводится в школе по эволюционному пути, избегая резких преобразований, опасных в этой системе человеческой деятельности. С этой целью 7 лет школа работала в условиях экспериментальной площадки, где