Newcomposers.ru

IT Мир
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как сделать поиск в аксессе

Макросы Access 2007. Ускорение поиска

Создадим двумя способами кнопку «Поиск фамилии» для быстрого поиска покупателя по фамилии в форме “Покупатель”. Первый способ – использование стандартных возможностей Access 2007. Второй способ – использование макроса.

Использование стандартных возможностей Access 2007

Откроем форму «Покупатель» в режиме конструктора. С панели элементов перенесем пиктограмму Кнопка в нижнюю часть формы. Будет вызван мастер Создание кнопки. Выберем режимы Категории: Переходы по записями, Действия: Найти запись. Затем на кнопке разместим текст «Поиск фамилии», введя соответствующий текст в поле Текст. Далее в качестве названия кнопки введем ФИО. При работе с формой “Покупатель” при нажатии кнопки будет вызываться окно стандартного поиска и замены Access.

Замечание. Если не запускается мастер создания кнопок, его надо включить на панели инструментов.

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

Использование макроса

Для примера создадим подобную кнопку поиска для формы «Товар». Создадим поле для ввода начала названия товара. Откроем эту форму в режиме конструктора и перетащим туда пиктограмму Поле в нижнюю часть формы. Вызовем список свойств правой части поля (первоначально оно имеет обозначение Свободный) щелчком правой кнопки мыши и заменим Имя на Поиск данное имя в дальнейшем будет использоваться. В строке состояния (свойство Текст строки состояния) введем текст: «Введите название товара или его первые буквы». Вызовем список свойств для левой части Поля (Надписи) и заменим Подпись также на Поиск. Закроем форму.

Дальше создадим макрос «Поиск». Он будет состоять из трех макрокоманд. Откроем вкладку Создание, нажмем кнопку Макрос. С помощью команд панели инструментов Имена макросов включим дополнительный столбец Имя макроса. Введем туда в первой строке слово Поиск. В колонке Макрокоманда выберем макрокоманду КЭлементуУправления. В области Аргументы макрокоманды в нижней части окна в качестве Имени элемента введем текст [Наименование] (в этом поле таблицы ТОВАР будет искаться товар с указанным именем). Во второй строчке во втором столбце Макрокоманда выберем из списка макрокоманд команду НайтиЗапись. В аргументах макрокоманды введем с клавиатуры в поле Образец поиска текст =[Поиск] (т.е. будет разыскиваться в поле Наименование таблицы ТОВАР запись, начало названия товара в которой совпадает с введенным в поле Поиск значением). В поле Совпадение выберем из списка элемент «С начала поля». Остальные элементы оставим без изменения. В третьей строке во втором столбце выберем снова макрокоманду КэлементуУправления, в аргументах макрокоманды для Имени элемента введем [Поиск]. Квадратные скобки вводить обязательно!

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

Закроем макрос и сохраним его с именем «Поиск товара». Теперь опять откроем форму «Товар» и перетащим туда макрос «Поиск товара». Появится кнопка с соответствующей подписью. Для поиска товара нужно ввести первые буквы названия товара, нажать кнопку «Поиск», будет найдена нужная запись (если она существует). Обратите внимание, то если ничего не вводить в окне Поиск, то при нажатии кнопки будет выдано сообщение об ошибке! В СУБД Access 2007 существуют способы обработки подобных ситуаций – макросы с условиями, но мы их рассматривать не будем.

Но таким образом можно найти лишь первую запись на введенную букву. Нетрудно организовать еще одну кнопку «Поиск далее». Для этого сделаем копию макроса «Поиск товара» через буфер обмена и назовем его «Поиск далее». С помощью конструктора изменим в новом макросе в аргументе строки НайтиЗапись свойство Первое вхождение с Да на Нет, Область поиска – Вниз. Теперь перетащим новый макрос в режиме конструктора в форму «Товар». Теперь будет идти поиск и последующих записей с тем же началом в поле Наименование.

Задание

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

Связанные статьи

Рекомендую прочесть статьи, связанные с данной:

Макрокоманда «ПоискЗаписи»

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

Настройка

Макрокоманда ПоискЗаписи имеет следующие аргументы:

Выберите или введите тип объекта базы данных, в котором будет выполняться поиск. Можно выбрать значение Таблица, Запрос, Форма или Отчет.

Введите или выберите объект, содержащий искомую запись. Раскрывающийся список содержит все объекты базы данных с типом, заданным в аргументе Тип объекта.

Укажите начало и направление поиска.

Поиск назад от текущей записи.

Поиск вперед от текущей записи.

Поиск вперед от первой записи. Это значение по умолчанию.

Поиск назад от последней записи.

Введите условия поиска, используя синтаксис предложения WHERE инструкции SQL, только без слова WHERE. Например:

Чтобы создать условие, содержащее значение из текстового поля в форме, следует написать выражение, объединяющее первую часть условия с именем текстового поля, содержащего значение, по которому будет проводиться поиск. Например, в следующем условии будет выполняться поиск в поле Description по значению текстового поля txtDescription в форме frmCategories. Обратите внимание на знак равенства (=) в начале выражения и на одинарные кавычки () по обеим сторонам ссылки на текстовое поле:

Читать еще:  Майкрософт аксесс 2003

Примечания

Если более чем одна запись соответствует условию, заданному в аргументе Условие отбора, на результат поиска могут оказать влияние следующие факторы:

Значение аргумента «Запись». Дополнительные сведения об аргументе Запись см. в таблице в разделе «Настройка».

Порядок сортировки записей. Например, если аргумент Запись имеет значение Первая, изменение порядка сортировки записей может отразиться на том, какая запись будет найдена.

Объект, заданный в аргументе Имя объекта, должен быть открыт до выполнения команды. В противном случае произойдет ошибка.

Если условие, заданное в аргументе Условие отбора, не выполняется, это не считается ошибкой, а фокус остается на текущей записи.

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

Для запуска макрокоманды ПоискЗаписи в модуле VBA используйте метод SearchForRecord объекта DoCmd.

Макрокоманда аналогична ПоискЗаписи макрокоманде НайтиЗапись, но у ПоискЗаписи более широкие возможности поиска. Макроманда НайтиЗапись в основном используется для поиска строк, и ее функции аналогичны возможностям диалогового окна Найти. В макрокоманде ПоискЗаписи используются условия, которые больше напоминают фильтр или запрос SQL. Вот некоторые возможности макрокоманды ПоискЗаписи:

В аргументе Условие отбора могут использоваться составные условия, например:

Description = «Напитки» and CategoryID = 11

Можно ссылаться на поля, которые существуют в источнике записей формы или отчета, но не отображаются в них. В предыдущем примере поля Description и CategoryID необязательно должны выводиться в форме или отчете.

Можно использовать логические операторы, такие как , AND, OR и BETWEEN. Макрокоманда НайтиЗапись ищет только строки, равные искомой строке, начинающиеся с нее или содержащие ее.

Пример

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

Создание формы для поиска записи из таблицы

Создание формы поиска на сайте. Почему не выводится результат поиска при вводе символов в поле поиска?
Добрый день! Создаю форму поиска с всплывающими подсказками. Попробую, выложить строки кода.

Создание формы для поиска
Добрый день. Я только начала работать с программой access. Уже научилась создавать запросы и формы.

Создание формы для поиска
Доброго времени суток коллеги! Как то понадобилось мне создать форму для поиска по всем записям.

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

Решение

Решение

Решение

Очень крутой способ, спасибо!

Подскажите пожалуйста, как еще можно реализовать фильтр по множественному выбору значений одного поля?
То есть, если нужно выбрать сразу несколько кодов ОКПО?

Решение

К примеру создать на форме список(поставив в свойствах списка Несвязное выделениеСо связным выбором) с ОКПО.
И менять источник записей в зависимости от выбранных значений в списке.

См. приложение.
Зажав Ctrl выбираешь в списке несколько ОКПО, во втором списке данные будут отфильтрованы.

Не понял.
ИЛИ выбирать несколько значений(хоть числовых, хоть текстовых, не важно)
ИЛИ при вводе(т.е. событие Change поля) значения в поле менять значения в списке..

Или Вы имеете ввиду, что:
1. Выбрать несколько значений ОКПО
2. Вводя во второе поле значение, фильтровать исходя из УЖЕ выбранных ОКПО?

Виктор, вероятно, что есть и лучше(быстрее по выполнению) способ.
Это был лишь вариант..

Этот код можно поместить на кнопку или на процедуру AfterUpdate каждого из контролов условий формы

Функция NZ здесь применена для выполнения условия показывать все, если какой-то параметр не выбран.
Код для населенного пункта также учитывает возможность выбрать все, если он не задан.

Имена контролов формы и полей таблицы следует исправить на истинные.

И последнее. Вместо текстового имени населенного пункта, лучше использовать его числовой код из справочника населенных пунктов. Если такого справочника нет, надо его создать. Иначе вас ждут неожиданные и трудноуловимые ошибки в разном написании одного и того же пункта

Поиск, сортировка, индексирование базы данных, создание форм и отчетов в Access.

Поиск данных

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

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

Запросы дают возможность работать с конкретным набором записей, которые удовлетворяют условиям, заданным для одной или нескольких таблиц базы данных. Создание индекса для ускорения поиска и сортировки записей

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

Выбор полей для индексирования

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

Ключевые поля таблицы индексируются автоматически. Нельзя индексировать поля с типом данных поле МЕМО, гиперссылка или объект OLE. Для остальных полей индексирование используется, если выполняются следующие условия.

Читать еще:  Подчиненная форма в аксесс

• Поле имеет текстовый, числовой, денежный тип или тип даты/времени.

• Не нужно осуществлять поиск значений в поле.

• Не нужно осуществлять сортировку значений в поле.

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

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

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

Особенности сортировки записей

Невозможно сортировать поля МЕМО, гиперссылки или объекты OLE.

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

Создание отчета. Пользователь имеет возможность разработать отчет самостоятельно или создать отчет с помощью мастера. Мастер по разработке отчетов Microsoft Access выполняет всю рутинную работу и позволяет быстро разработать отчет.

Семантическое моделирование данных (ER-диаграммы). Цель семантического моделирования. Основные этапы семантического моделирования. E/R-модель и соответствующая ей диаграммная техника (E/R-диаграммы). Проектирование базы данных на основе E/R-модели.

Модель «сущность-связь» (entity-relationship model) ER-модель данных – это графический язык определения требований пользователя к данным. Спецификации требований представляются в виде диаграммы, показывающей объекты ПО, их связи и свойства объектов и связей. Существует много различных систем графических обозначений (нотаций), используемых для построения ER-диаграмм. ER-диаграмма наглядно и точно отражает представления автора о данных. Поэтому она является хорошим источником информации для проектировщика логической модели данных. С другой стороны, диаграммы выразительны, наглядны и легко интерпретируются конечными пользователями. Поэтому их очень удобно использовать при обсуждении требований к данным с конечными пользователями.

Элементы ER-модели. Базовыми элементами ER-модели являются сущности, атрибуты, идентификаторы и связи.

Сущность (entity) – это некоторый объект, выделяемый (идентифицируемый) пользователем в предметной области. Нечто, за чем пользователь хотел бы наблюдать и сохранять результаты наблюдений (данные). Сущностями могут быть люди, предметы, места, события и т.д. Сущность – это нечто, имеющее реальное (физическое) или концептуальное существование и выделяемое в окружающем мире.

Сущности одного и того же типа образуют классы сущностей.

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

Атрибут – это характеристика сущности (свойство класса), значимая с точки зрения пользователя.

Атрибут может быть: простым значения принадлежат простым типам данных. композитным (составным). производным значение производного атрибута зависит от значений других атрибутов той же или других сущностей.

Идентификаторы – это атрибуты сущностей, значения которых можно использовать для идентификации или именования экземпляров. Выделяют уникальные идентификаторы (потенциальные ключи) и неуникальные. Значение уникального идентификатора не может встретиться у двух экземпляров сущности. Значение неуникального идентификатора указывает на множество экземпляров. Идентификатором может быть не любой атрибут сущности. Сущность может иметь несколько уник. и неуник. идентиф.

Связи – это отношения сущностей. ER-модель различает классы и экземпляры связей.

Описание сущностей и их связей – это и есть (с точки зрения проектировщика БД) основная часть концептуальной модели требований пользователя к данным.

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

Изображение атрибутов на диаграммах «сущность-связь»

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

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

Семантический подход, в отличие от формального, предполагает параллельное выполнение анализа ПО и проектирование логического макета БД. В основе подхода лежат понятия ER-модели данных. Процесс проектирования включает три этапа.

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

На втором этапе Формирование логического макета БД с точностью до ключей. Детально просматриваются экземпляры и типы сущностей, целостность данных, ссылочная целостность, первичные, внешне ключи и т.д.

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

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

Читать еще:  Скачать звуки для презентации powerpoint wav

Методологии семантического подхода.

1.Использование графических языков для представления ER- модели (наглядность, точность, ясность) представления своих представлений о данных с помощью диаграмм.

2.Глоссарий для однозначного определения имен сущностей и атрибутов. Он позволяет показать то, что нельзя изобразить графически.

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

Требования к диаграммам ER-уровень

Диаграмма должна содержать сущности и связи, может показывать атрибуты и не должна показывать первичные, альтернативные или внешние ключи. На ER-уровне сущности не различаются как зависимые или независимые, а соединения – как идентифицирующие и неидентифицирующие. Сущности не содержат горизонтальных линий, отделяющих область ключей от области данных. Имена сущностей вписываются в обозначающие их прямоугольники.

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

Папиллярные узоры пальцев рук — маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни.

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ — конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой.

Создание запросов в базе данных Access 2007

Учебная дисциплина
Информатика и компьютерная техника
Модуль 2. Офисные прикладные программы Microsoft Office 2007

2.4. Microsoft Access 2007

2.4.5. Создание запросов и поиск информации в базе данных

В СУБД Access 2007 можно создавать queries для отображения требуемых полей из записей одной или нескольких таблиц.

В СУБД Access 2007 применяются различные типы запросов: на выборку, на обновление, на добавление, на удаление, перекрестный query, выполнение вычислений, создание таблиц. Наиболее распространенным является query на выборку. Применяются два типа запросов: query по образцу (QBE) и query на основе структурированного языка запросов (SQL).

Запросы на выборку используются для отбора требуемой пользователю информации, содержащейся в нескольких таблицах. Они создаются только для связанных таблиц. Queries могут основываться как на нескольких таблицах, так и существующих запросах. СУБД Access 2007 включает такие средства создания запросов, как Мастер и Конструктор.

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

На скриншоте (рисунок 1) средства сортировки и фильтрации выделены скругленным прямоугольником красного цвета.

Рассмотрим создание запроса на выборку с помощью Конструктора

Для создания нового пустого запроса в режиме конструктора надо щелкнуть на пиктограмме Конструктор запросов (рисунок 2).

Откроется активное окно диалога Добавление таблицы (рисунок 3) на фоне неактивного окна «Запрос1». В этом окне можно выбрать таблицы и queries для создания новых запросов.

В окне Добавление таблицы следует выбрать несколько таблиц из представленного списка таблиц, на основе которых будет проводиться выбор данных, и щелкнуть на кнопке Добавить. После этого закрыть окно Добавление таблицы, а окно «Запрос1» станет активным (рисунок 4).

Окно Конструктора состоит из двух частей – верхней и нижней. В верхней части окна размещается схема данных запроса, которая содержит список связанных таблиц. В нижней части окна находится Бланк построения запроса QBE, в котором каждая строка выполняет определенную функцию.

Переместим имена полей с таблиц-источников в Бланк. Из таблицы Группы студентов переместим поле Название в первое поле Бланка, из таблицы Студенты переместим поле Фамилии во второе поле, а из таблицы Успеваемость переместим поле Оценка в третье поле и из таблицы Дисциплины переместим поле Название в четвертое поле Бланка запросов.

При необходимости можно задать принцип сортировки (по возрастанию или по убыванию) результатов запроса. В строке «Вывод на экран» автоматически устанавливается флажок просмотра информации.

Условия ограниченного поиска или критерий поиска информации вводится в строке «Условия» отбора и строке «Или». Например, введем критерий поиска — «5/A» в строке «Условия» для поля Оценка. В этом случае в результате выполнения запроса на экране будут отображаться все фамилии студентов, которые получили оценку 5/A (рисунок. 5).

Далее надо закрыть окно запроса Запрос1, появится окно диалога Сохранить, ответить — Да и ввести имя запроса, например «Успеваемость студентов». Для запуска запроса дважды щелкнем на query «Успеваемость студентов», откроется таблица с результатами выполненного запроса (рис. 6).

Далее создаем параметрический query или query с параметрами. Создаем этот query также как и предыдущий, в режиме конструктора, но только в строке Условия отбора для поля Фамилия введем условие отбора в виде приглашения в квадратных скобках, например [Введите фамилию]. В этом случае в результате выполнения запроса на экране будет отображаться фамилия студента и все дисциплины, по которым он получил оценку.

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

Затем надо щелкнуть на кнопке ОК, откроется таблица с результатами выполненного запроса (рис. 8).

В некоторых случаях для создания запросов можно использовать Мастер запросов. После создания запросов на выборку информации из БД Access 2007 можно приступать к формированию форм.

Copyright

© Обучение в интернет, .
Обратная связь

Ссылка на основную публикацию
Adblock
detector