Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MED2_5.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.1 Mб
Скачать

2.5 Фильтрация данных в microsoft access

Фильтрацией называется отбор записей, отвечающих определенным условиям. В MICROSOFT ACCESS различают следующие типы фильтров: фильтр по выделенному фрагменту, обычный фильтр и расширенный фильтр.

Для применения фильтра по выделенному фрагменту следует выделить в некоторой записи поля определенный фрагмент текста. При этом возможны следующие ситуации:

– если значение в поле должно целиком совпадать с фрагментом, то фрагмент выделяется полностью;

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

– если выделенный фрагмент может находиться в любой части поля, то выделяют несколько символов фрагмента, начиная со 2-го символа.

Так, для нахождения врача Петрова (см. пункт “Команды Найти и Заменить”) находим одну из записей поля “Фамилия”, в которой содержится значение Петров (для упрощения работы базу можно предварительно отсортировать по полю “Фамилия”) и полностью выделяем слово Петров. Элемент поля примет вид Петров. Для нахождения всех живущих на улице Гагарина следует найти первую запись с указанной улицей и выделить в поле “Адрес” только название улицы. Элемент поля примет вид Гагарина,10-58. Для нахождения пациентов, переболевших краснухой, в поле “Анамнез” следует найти первую запись с вхождением краснухи и выделить элемент поля в виде краснуха. Следует отметить, что в последнем примере перед фильтрацией удобно использовать не сортировку, а команду Найти, поскольку анамнез может включать несколько заболеваний, а название краснухи находиться в любом месте поля.

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

Более простым способом фильтрации по выбранному элементу текста является команда Фильтр для. Для ее применения следует в режиме таблицы щелкнуть ПРАВОЙ кнопкой мыши в любом месте поля, НО НЕ В ЗАГОЛОВКЕ.

При этом в раскрывшемся меню следует выбрать пункт Фильтр для и в соответствующем ему окошечке ввести текст или функцию. Для поиска врача Петрова следует ввести Петров, для поиска улицы Гагарина – текст Гагарина*, для поиска краснухи – текст *краснуха*. При необходимости выделить записи, отвечающие нескольким условиям, связанным операцией И следует после первой фильтрации выполнить последовательно фильтрацию по остальным условиям.

Например, чтобы найти всех мужчин – пациентов поликлиники, проживающих на улице Гагарина, следует сначала в поле “Пол” выделить фрагмент М; при этом будут отображены только записи для мужчин-пациентов. После этого в поле “Адрес” выделяем фрагмент Гагарина, 7–1 и задаем команду фильтрации. В результате в таблице останется только список мужчин, проживающих на указанной улице.

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

Для придания таблице первоначального вида следует щелкнуть пиктограмму 1, рис. 2.8 с изображением воронки, или перейти в пункт меню Записи / Удалить фильтр.

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

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

Для использования обычного фильтра следует выполнить следующие действия:

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

Рис. 2.8

Рис. 2.9

– щелкнуть мышью то поле, на которое следует наложить условие, при этом появляется знак прокрутки (1, рис. 2.9). Следует щелкнуть его и выбрать в появившемся меню одно из значений или ввести значение вручную. При ручном вводе текстовое значение заключается в кавычки, а значение в виде даты – в знаки #.

– аналогично ввести условия на остальные поля. При этом условия связываются операцией И;

– после введения всех условий отбора щелкнуть пиктограмму 2, рис. 2.8 с изображением воронки.

Так, для нахождения в базе данных “Новорожденные”, всех новорожденных с ростом менее 50 см и весом при рождении менее 3000 г, следует в поле РОСТ установить условие <50, а в поле ВЕС – условие <3000. В результате будут выведены записи только с “маленькими” новорожденными.

ВНИМАНИЕ! УКАЗАННЫЕ ДЕЙСТВИЯ ПРИМЕНИМЫ ТОЛЬКО К УСЛОВИЯМ, НАЛОЖЕННЫМ ОДНОВРЕМЕННО НА РАЗНЫЕ ПОЛЯ!

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

Для нахождения записей, условия отбора в которых связаны операцией ИЛИ следует поступить следующим образом:

– аналогично рассмотренному ранее алгоритму наложить условие на поле;

– щелкнуть вкладку Или (вкладка 1, рис. 2.10), расположенную в нижней части окна фильтра; при этом откроется новая пустая вкладка Или, в которую снова следует внести условия отбора.

– после формирования всех условий отбора щелкнуть кнопку Применение фильтра (пиктограмма 2, рис. 2.10).

Пример: пусть необходимо вывести список пациентов, у которых хотя бы один показатель анализа крови – гемоглобин, лейкоциты или лимфоциты менее нормы (норма гемоглобина 12–16 ед., лейкоцитов 4–9 ед., лимфоцитов – 18–40 ед.).

Открываем окно фильтрования и в поле ГЕМОГЛОБИН вводим условие <12, затем щелкаем вкладку Или и в поле ЛЕЙКОЦИТЫ вводим условие <4, а затем снова щелкаем на вкладке Или и в поле ЛИМФОЦИТЫ вводим условие <18. После этого щелкаем кнопку Применение фильтра.

Пример. Пусть необходимо сформировать список пациентов, принятых врачом Федоровым Ю.Т. ранее 26.05.99 или врачом Литвиновой А.Г. позже 07.07.99. Условие отбора можно представить в виде логического выражения

(Федоров Ю.Т. И <26.05.99)ИЛИ(Литвинова А.Г. И >07.07.99)

Реализуем это выражение с помощью фильтра.

Открываем окно фильтрования, в поле ВРАЧ с помощью кнопки прокрутки ▼ выбираем значение Федоров Ю.Т., а в поле ДАТА

Рис. 2.10

ПОСЕЩЕНИЯ устанавливаем условие <#26.05.99#, после чего щелкаем вкладку Или и в поле ВРАЧ выбираем значение Литвинова А.Г., а в поле ДАТА ПОСЕЩЕНИЯ вводим условие >#07.07.99#, в заключение щелкаем кнопку Применение фильтра.

Пример. Пусть необходимо сформировать список пациентов поликлиники, проживающих на улице Луначарского и работающих на ОАО “Лисма” или проживающих на улице Мичурина и работающих в ателье “Белошвейка”.

Порядок действий аналогичен рассмотренному выше примеру, однако в поле АДРЕС достаточно указать соответственно Луначарского* и Мичурина* (или даже Лунач* и Мичур*).

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

Для отмены условий предыдущего фильтра следует щелкнуть кнопку 1, рис. 2.10.

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

between A and B

Здесь А и В – соответственно нижняя и верхняя границы интервала. Так, чтобы отфильтровать всех пациентов, гемоглобин которых в норме, следует в поле ГЕМОГЛОБИН задать команду Фильтр для и ввести выражение

between 12 and 16

Для нахождения записей, относящихся к какому-либо промежутку в формате дата/время, даты (время) должны быть заключены в знаки #. Например, чтобы найти всех пациентов, поступивших в отделение больницы за первую декаду марта, необходимо в поле ДАТА ПОСТУПЛЕНИЯ указать в команде Фильтр для выражение

between #01.03.2003# and #10.03.2003#

Вместо функции between можно использовать выражение

>=#01.01.2003# and <=#12.03.2003#

Более сложные конструкции можно реализовать с помощью команды Расширенный фильтр. Для ее реализации следует войти в пункт меню Записи / Фильтр / Расширенный фильтр. На экране появляется бланк, состоящий из двух частей. В верхней части бланка перечислены имена полей таблицы. Имена полей, на которые накладываются условия, следует перетащить с помощью мыши в верхнюю строку нижнего бланка, при этом указатель мыши принимает форму перечеркнутого кружочка. В строке Условия отбора следует указать условия для каждого поля, причем если они соединены операцией ИЛИ, то условия должны располагаться в двух строках. Так, например, если необходимо отфильтровать пациентов, проходивших профилактический осмотр с 01.01.2002 по 15.01.2002 и признанных здоровыми, то нижний бланк будет иметь вид

Поле

ДАТА ОСМОТРА

ЗАКЛЮЧЕНИЕ

Сортировка

Условие отбора

Between #01.01.02# and #15.01.02

Здоров

или

Если же необходимо отфильтровать пациентов, прошедших профосмотр позже 31.01.02 или направленных на повторный осмотр, то бланк принимает вид

Поле

ДАТА ОСМОТРА

ЗАКЛЮЧЕНИЕ

Сортировка

Условие отбора

> #31.01.02

или

Повторный осмотр

Если некоторое поле записи может быть пустым, то к таким записям применимы условия фильтрации IS NULL (является пустым) или NOT NULL (не пустое).

Так, для поиска детей, стоящих на диспансерном учете, следует в поле ДИСПАНСЕРНЫЙ УЧЕТ указать значение NOT NULL либо в команде Фильтр для, либо в команде Расширенный фильтр. Напротив, для поиска пациентов, не имевших послеоперационных осложнений, следует в поле ОСЛОЖНЕНИЯ указать условие IS NULL.

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

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

Запросы являются более мощным средством работы в MICROSOFT ACCESS.

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

Самым простым запросом является простой запрос. Для его построения необходимо выполнить следующие действия:

– открыть базу данных;

– открыть вкладку Запросы;

– щелкнуть кнопку Создать;

– в диалоговом окне Новый запрос выделить строку Простой запрос и щелкнуть кнопку ОК. После этого в окне Таблицы и запросы следует выбрать необходимую таблицу. Из окна Доступные поля следует с помощью кнопки > перенести требуемые поля в окно Выбранные поля и щелкнуть кнопку Далее. Затем следует задать имя запроса в соответствующем окне и установить знак ○ в пункте Открыть запрос для просмотра данных, после чего щелкнуть кнопку Готово. На экране появится таблица, в которой будут отображены только выбранные поля. ЗАПРОС ПОДОБНОГО ТИПА ИСПОЛЬЗУЕТСЯ РЕДКО, ПОСКОЛЬКУ АНАЛОГИЧНЫЙ РЕЗУЛЬТАТ МОЖНО ПОЛУЧИТЬ, ПРОСТО СКРЫВ ПОЛЯ В ТАБЛИЦЕ.

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

– открыть базу данных;

– открыть вкладку Запросы;

– щелкнуть кнопку Создать и выбрать пункт Конструктор;

при этом появится диалоговое окно Добавление таблицы (рис. 2.11), в которой перечислены все таблицы, относящиеся к базе данных. Следует выбрать таблицу и щелкнуть кнопку Добавить. Аналогичные действия проделать со всеми необходимыми таблицами. ПРЕДВАРИТЕЛЬНО МЕЖДУ СОЗДАВАЕМЫМИ ТАБЛИЦАМИ ДОЛЖНА БЫТЬ УСТАНОВЛЕНА ВЗАИМОСВЯЗЬ! (см. ниже).

– после добавления всех таблиц щелкнуть кнопку Закрыть.

Рис. 2.11

После выполнения указанных действий на экране появляется бланк запроса с заголовком Запрос 1.

Для указания в запросе полей следует выполнить следующие действия:

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

– затем щелкнуть строку Поле над строкой Имя таблицы. В раскрывшемся списке полей выбрать первое из требуемых (оно не обязательно должно быть первым в указанной таблице).

Те же действия можно выполнить, просто перетащив имя поля из списка полей в верхней части бланка запроса на нужное место (см. пункт “Фильтры”).

В результате указанных действий в строке Вывод на экран во всех столбцах полей появляется знак √ .

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

Затем в строке Условие отбора следует задать условия, наложенные на каждое поле, причем условия для отдельного поля, кроме знаков логических отношений, могут включать в себя логические операции AND и OR. После того, как на каждое поле наложены условие 1, условие 2, условие 3 и т. д; при необходимости в строке Или добавить условия, соединяющие условия отбора, заданные в первой строке, операцией Или.

После формирования всех условий следует щелкнуть кнопку 1, рис. 2.12.

Рис. 2.12

Пример. Пусть имеется таблица ПАЦИЕНТ, в которой содержатся в том числе поля Ф.И.О. ПАЦИЕНТА и ПОЛ. Отсортировать пациентов следующим образом: сначала мужчин по алфавиту, затем женщин по алфавиту. Бланк запроса принимает вид:

Поле

ПОЛ

Ф.И.О. ПАЦИЕНТА

Имя таблицы

ПАЦИЕНТ

ПАЦИЕНТ

Сортировка

По убыванию

по возрастанию

Вывод на экран

Условие отбора

Или

В результате таблица принимает вид:

ПОЛ

Ф.И.О. ПАЦИЕНТА

М

Лукьянов Д.М.

М

Столяров А.И.

М

Ушаков П.Г.

Ж

Денисова Н.Н.

Ж

Куманева О.В.

Ж

Маничкина Е.К.

Однако, как правило, более удобен порядок следования полей, при котором сначала размещаются фамилии, а затем пол. Установить такой порядок можно двумя способами:

– если сохранение запроса не требуется, то просто с помощью мыши переставить поля (см. пункт “Сортировка записей в MICROSOFT ACCESS”);

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

Во втором случае следует в окне Запросы выбрать пункт Создание таблицы, после чего ввести имя новой таблицы и щелкнуть кнопку ОК. На панели инструментов щелкнуть кнопку Запуск (кнопка 1, рис. 2.12). В ответ на предложение создать таблицу следует щелкнуть кнопку Да.

Пример. Пусть имеются две таблицы – ПАЦИЕНТ и АНАЛИЗ КРОВИ, связанные между собой по ключевому полю НОМЕР_КАРТЫ. Следует выбрать пациентов, у которых все три стандартных показателя – гемоглобин, лейкоциты и лимфоциты выше нормы (границы нормы этих показателей указаны выше). Бланк запроса принимает вид

Поле

Ф.И.О. ПАЦИЕНТА

ГЕМОГЛОБИН

ЛЕЙКОЦИТЫ

ЛИМФОЦИТЫ

Имя таблицы

ПАЦИЕНТ

АНАЛИЗ КРОВИ

АНАЛИЗ КРОВИ

АНАЛИЗ КРОВИ

Сортировка

Вывод на экран

Условие отбора

>16

>9

>40

Или

Пример. Для условий предыдущего примера отфильтровать пациентов, у которых хотя бы один из показателей выше нормы. Термин “хотя бы” подразумевает, что условия отбора связаны между собой операцией ИЛИ. Соответственно, бланк запроса имеет вид:

Поле

Ф.И.О. ПАЦИЕНТА

ГЕМОГЛОБИН

ЛЕЙКОЦИТЫ

ЛИМФОЦИТЫ

Имя таблицы

ПАЦИЕНТ

АНАЛИЗ КРОВИ

АНАЛИЗ КРОВИ

АНАЛИЗ КРОВИ

Сортировка

Вывод на экран

Условие отбора

>16

Или

>9

>18

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

Поле

Ф.И.О. ПАЦИЕНТА

ГЕМОГЛОБИН

ЛЕЙКОЦИТЫ

ЛИМФОЦИТЫ

Имя таблицы

ПАЦИЕНТ

АНАЛИЗ КРОВИ

АНАЛИЗ КРОВИ

АНАЛИЗ КРОВИ

Сортировка

Вывод на экран

Условие отбора

>=12 and <=16

>=4 and <=9

>=18 and <=40

Или

Для отображения в запросе пустых или напротив, непустых ячеек полей, следует использовать условие NOT NULL или IS NULL (см. пункт “Фильтры”).

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

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

Для создания вычисляемого поля в режиме запроса следует выполнить следующие действия:

– в окне базы данных с помощью кнопки Таблица выбрать требуемую таблицу;

– на панели инструментов с помощью кнопки Новый объект выбрать пункт Запрос (пиктограмма 3, рис. 2.13);

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

– перетащить интересующие нас поля таблицы в бланк запроса.

Если необходимо отобразить в запросе все поля исходной таблицы, то в первый столбец бланка запроса следует перенести знак * из верхней части окна списка полей таблицы.

– щелкнуть мышью строку Поле второго столбца запроса и ввести выражение вида

ИМЯ_ПОЛЯ:[ПОЛЕ1]действие[ПОЛЕ2]действие[ПОЛЕ3]…

Здесь ИМЯ_ПОЛЯ – имя вновь созданного вычисляемого поля, ПОЛЕ1, ПОЛЕ2, и т. д. – имена полей, над которыми производятся указанные действия.

– щелкнуть кнопку Запуск.

Пример. Пусть необходимо определить число дней, проведенных пациентами в стационаре по дате поступления и дате выписки. Бланк запроса представлен на рис. 2.14.

Рис. 2.13

Поле

Ф.И.О. ПАЦИЕНТА

ДАТА ПОСТУПЛЕНИЯ

ДАТА ВЫПИСКИ

ДНИ:

ДАТА ВЫПИСКИ]- [ДАТА ПОСТУПЛЕНИЯ]

Имя таблицы

ОТДЕЛЕНИЕ

ОТДЕЛЕНИЕ

ОТДЕЛЕНИЕ

Сортировка

Вывод на экран

Условие отбора

Или

Рис. 2.14

Пример: определить средний балл студента по результатам трех экзаменов. Бланк запроса представлен на рис. 2.15.

Поле

Ф.И.О. СТУДЕНТА

СРЕДНИЙ БАЛЛ:

([ФИЗИКА]+[ХИМИЯ]+[ИСТОРИЯ])/3

Имя таблицы

ГРУППА 101

Сортировка

Вывод на экран

Условие отбора

Или

Рис. 2.15

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

Другой способ создания вычисляемых полей включает в себя следующие действия:

– отобразить запрос в режиме конструктора;

– установить курсор на пересечении строки Поле и пустой колонки бланка запроса;

  • щелкнуть кнопку 1, рис. 2.16 на панели инструментов, осуществляющую переход в диалоговое окно Построителя выражений;

Рис. 2.16

– при необходимости в левом окошечке выбрать другие таблицы, поля из которых используются в вычислениях;

– дважды щелкнуть выбранные поля;

щелкнуть кнопку, соответствующую арифметическому действию или выбрать из папок Операторы и Функции требуемые процедуры. Выбранные операторы или функции следует щелкнуть дважды.

– в заключение щелкнуть кнопку ОК.

Для переименования вычисляемого поля следует щелкнуть его в бланке запроса, затем кнопку Построить (пиктограмму 1, рис. 2.16) на панели инструментов и в строке подпись ввести имя поля, после чего закрыть запрос с помощью кнопки Закрыть.

Кроме того, для выполнения расчетов в вычисляемых полях можно экспортировать таблицу из системы ACCESS в систему EXСEL, выполнить необходимые вычисления и снова вернуть таблицу в ACCESS. Порядок выполнения этой процедуры см. ниже.

В приведенных выше примерах вычисляемые поля определялись с помощью достаточно простых арифметических выражений. Однако во многих случаях значения вычисляемых полей зависят от выполнения ряда условий, налагаемых на другие поля. В этом случае в вычисляемом поле используется выражение вида ИМЯ НОВОГО ПОЛЯ: IIF(логическое выражение; значение1;значение2)

Логическое выражение включает имена полей таблицы, заключенные в квадратные скобки. Здесь значение1 – значение, которое принимает вычисляемое поле, если логическое выражение истинно, в противном случае в качестве значения берется значение2.

Пример. Если вес ребенка при рождении составлял менее 2700 г, или оценка по шкале Апгар была менее 7 баллов, то ребенок должен быть поставлен на диспансерный учет в поликлинике. В этом случае в поле ДИСПАНСЕРИЗАЦИЯ следует ввести значение “дисп.учет”, в противном случае – значение “не стоит”.

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

В пустом столбце запроса в строке Поле вводим выражение:

ДИСПАНСЕРИЗАЦИЯ: iif([ВЕС]<2700 or

[ОЦЕНКА АПГАР]<7;”дисп.учет”; “не стоит”)

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

Пример: пусть имеются таблицы АМБУЛАТОРНАЯ КАРТА и РЕНТГЕНОГРАФИЯ. имеющие общее поле НОМЕР КАРТЫ (т. е. уникальный код пациента).

Пусть таблица АМБУЛАТОРНАЯ КАРТА содержит в том числе поля ФАМИЛИЯ и ДОМАШНИЙ АДРЕС, а таблица РЕНГЕНОГРАФИЯ

– поля ФАМИЛИЯ ПАЦИЕНТА, АДРЕС, ДАТА ПРОХОЖДЕНИЯ и ЗАКЛЮЧЕНИЕ. Для отображения в заключении врача-рентгенолога данных о пациенте следует в таблицу РЕНТГЕНОГРАФИЯ в поля ФАМИЛИЯ ПАЦИЕНТА и АДРЕС внести соответствующие данные из таблицы АМБУЛАТОРНАЯ КАРТА. Обратите внимание на то, что имена аналогичных по смыслу полей в таблицах не обязательно совпадают.

Для добавления данных из таблицы АМБУЛАТОРНАЯ КАРТА в таблицу РЕНТГЕНОГРАФИЯ используется запрос на обновление. Запрос на обновление включает в себя следующие процедуры:

– в окне базы данных следует щелкнуть на кнопке Запросы, а затем на кнопке Создать;

– в диалоговом окне Новый запрос выделить строку Конструктор и щелкнуть кнопку ОК.

– в диалоговом окне Добавление таблицы при нажатой клавише CTRL щелкнуть таблицы АМБУЛАТОРНАЯ КАРТА и РЕНТГЕНОГРАФИЯ; после этого последовательно щелкнуть кнопки Добавить и Закрыть;

– выбрать в окне команды Запрос пункт Обновление;

– перетащить в бланк запроса поля ФАМИЛИЯ ПАЦИЕНТА и АДРЕС из таблицы РЕНТГЕНОГРАФИЯ;

– в строке Обновление в столбце поля ФАМИЛИЯ ПАЦИЕНТА введите выражение

[ФАМИЛИЯ]![АМБУЛАТОРНАЯ КАРТА]

а в строке Обновление в столбце поля АДРЕС введите выражение

[ДОМАШНИЙ АДРЕС]![АМБУЛАТОРНАЯ КАРТА]

– щелкнуть на кнопке Запуск и на предложение обновить таблицу щелкнуть на кнопке Да.

Пример* (более сложная конструкция). Предположим, что в предыдущем примере в таблице РЕНТГЕНОГРАФИЯ имеется не поле ФАМИЛИЯ ПАЦИЕНТА, а поле ФИО, в которое вносятся фамилия полностью и инициалы пациента, т.е. первые буквы имени и отчества. В этом случае запрос состоит из нескольких действий:

  1. из таблицы АМБУЛАТОРНАЯ КАРТА с помощью запроса на выборку создать таблицу, в которой содержатся только поля НОМЕР КАРТЫ, ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО и ДОМАШНИЙ АДРЕС; затем, как было показано выше, создать в том же запросе вычисляемое поле ФИО. Выражение для вычисляемого поля имеет вид:

ФИО:[ФАМИЛИЯ]+” “+LEFT([ИМЯ];1)+”.“+LEFT([ОТЧЕСТВО];1)+”.”

Функция LEFT в данном выражении отделяет по одному символу слева в текстовых полях ИМЯ и ОТЧЕСТВО. Знак “+” в этом выражении обеспечивает слияние текстовых констант. Поскольку по смыслу задачи вычисление производится для всех записей, то условия отбора в бланке запроса отсутствуют. Сформированный запрос сохранить в виде новой таблицы, например, имеющей имя КАРТА ПАЦИЕНТА.

2) добавить в таблицу РЕНТГЕНОГРАФИЯ поля ФИО и ДОМАШНИЙ АДРЕС из таблицы КАРТА ПАЦИЕНТА, как было рассказано выше.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]