Форум программистов
 

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2011, 12:00   #31
ovt256
Форумчанин
 
Регистрация: 01.04.2011
Сообщений: 226
По умолчанию

Вариант 1:
Код:
умер1: Sum(IIf([повод]![ОПИСАНИЕ] Like "*умер*";1;0))
Вариант 2:
Код:
умер2: Sum(IIf([вызов]![точный_диагноз] Like "*смерт*" And [повод]![ОПИСАНИЕ] Not Like "*умер*";1;0))
Вариант 3:
Код:
умер3: Sum(IIf([вызов]![точный_диагноз] Like "*смерт*" And [повод]![ОПИСАНИЕ] Not Like "*умер*" And ([вызов]![отметки_информация] Like "*ИВЛ*" Or 
[вызов]![отметки_информация] Like "*дефиб*" Or [вызов]![отметки_информация] Like "*массаж*");1;0))
Если руки золотые, то не важно, откуда они растут.
ovt256 вне форума Ответить с цитированием
Старый 13.06.2011, 13:40   #32
ovt256
Форумчанин
 
Регистрация: 01.04.2011
Сообщений: 226
По умолчанию

С вариантом 4 возникают необоснованные сложности. В таблице вызовы, вроде, задумано наличие всей необходимой информации, но реально пользоваться этой информацией весьма затруднительно. Время без даты позволяет анализировать информацию внутри суток, но это не то, или пока не то, что нужно. Во всяком случае, количество вызовов в ночное, утреннее, дневное и вечернее время Вас пока не интересует. А вот определить время между двумя вызовами при наличии поля даты и поля времени - задачка не тривиальная, особенно учитывая, что заполнение полей со временем не является обязательным и допускает пустые значения.

Мне кажется, что все поля таблицы "вызов", связанные с моментом события (прием вызова, передача вызова, выезд, прибытие к больному и т. д.) надо переделать в дата/время и обеспечить обязательность их заполнения. Тогда реализация запроса для варианта 4 станет реалистичным заданием.

Я еще поразмыслю над 4-м вариантом...
Если руки золотые, то не важно, откуда они растут.
ovt256 вне форума Ответить с цитированием
Старый 13.06.2011, 22:05   #33
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
Хорошо

Мне кажется, что все поля таблицы "вызов", связанные с моментом события (прием вызова, передача вызова, выезд, прибытие к больному и т. д.) надо переделать в дата/время и обеспечить обязательность их заполнения. Тогда реализация запроса для варианта 4 станет реалистичным заданием.

Я еще поразмыслю над 4-м вариантом...[/QUOTE]
если бы те кто сейчас пользуется этой "программой" знали бы элементарное-я бы сделал эти поля обязательными.А когда приходиться объяснять как удобнее держать мышь..то сами понимаете в какой конфуз их приведут постоянные сообщения о ошибках
.Со временем так и будет.
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Старый 13.06.2011, 22:33   #34
ovt256
Форумчанин
 
Регистрация: 01.04.2011
Сообщений: 226
По умолчанию

Напоминания системы о некорректных действиях очень скоро приучат пользователей правильно вести БД. А от этого во многом зависит ожидаемость работы программы, корректность отчетов и пр.
Если руки золотые, то не важно, откуда они растут.
ovt256 вне форума Ответить с цитированием
Старый 14.06.2011, 01:12   #35
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
По умолчанию

попробовал это: бж с отказом: Sum(IIf([вызов]![ЛПУ] Like "*отказ от госпитализации*" And [повод]![ОПИСАНИЕ] Like "*болит живот*";1;0)). Запись есть от 11/06/11 №8146.,а случай почему-то не фиксирует? Чудеса или я опять где-то не понял?
Всё работает...просто поспешил
бж с отказом: Sum(IIf([больницы]![Наименование_ЛПУ] Like "*отказ от госпитализации*" And [повод]![ОПИСАНИЕ] Like "*болит живот*";1;0))
Заметил только когда на форум написал
OVT 256 МЕГАРЕСПЕКТ!

Последний раз редактировалось dr03; 14.06.2011 в 01:17. Причина: поспешное решение
dr03 вне форума Ответить с цитированием
Старый 14.06.2011, 23:21   #36
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
По умолчанию

Совсем сломал голову и не могу понять где что делаю неправильно.Прописываю:инфекции: Sum(IIf([вызов]![точный_диагноз] Like "*ПТИ*" Or [вызов]![точный_диагноз] Like "*инфекци*" Or [вызов]![точный_диагноз] Like "*ОРВИ*" Or [вызов]![точный_диагноз] Like "*ангина*" Or [вызов]![точный_диагноз] Like "*ОКИ*" Or [вызов]![точный_диагноз] Like "*грипп*" Or [вызов]![точный_диагноз] Like "*вирус*" Or [вызов]![точный_диагноз] Like "*гельмин*" Or [вызов]![точный_диагноз] Like "*аскарид*" Or [вызов]![точный_диагноз] Like "*ВИЧ*" Or [вызов]![точный_диагноз] Like "*СПИД*" Or [вызов]![точный_диагноз] Like "*туберк*" Or [вызов]![точный_диагноз] Like "*дизентерия*" Or [вызов]![точный_диагноз] Like "*сальмонел*" ;1;0)). За 14 июня в диагнозе:2 ОРВИ и Ротавирусная инфекция. В отчёт (Запрос_к_отчету)скидывает всего 2 случая.НЕ МОГУ ПОНЯТЬ!Прописываю всё тоже самое с And-вообще одни нули.За 6 июня посчитал правильно с "Or".Другие не проверял.Я скоро сойду с ума.
Вложения
Тип файла: rar База данных24 - копия.rar (391.3 Кб, 4 просмотров)
OVT 256 МЕГАРЕСПЕКТ!

Последний раз редактировалось dr03; 14.06.2011 в 23:22. Причина: поторопился
dr03 вне форума Ответить с цитированием
Старый 15.06.2011, 08:57   #37
ovt256
Форумчанин
 
Регистрация: 01.04.2011
Сообщений: 226
По умолчанию

Ваш запрос работает правильно, проблема в данных. Вы установили связь между таблицами "вызов" и "больницы" = отображать только те записи, для которых значения поля связи совпадает. При этом, если в таблице "вызов" поле ЛПУ окажется незаполненным, то эта запись в итоговую выборку не попадет. Так и случилось для записи с № вызова 8294. Поэтому за 14 июня инфекций 2, а не 3

Для того, чтобы все вызовы попадали в выборку, надо изменить тип связи таблицы "вызов" с таблицами "больницы" и "повод", как на рисунке.
Изображения
Тип файла: jpg Связь.JPG (27.8 Кб, 34 просмотров)
Если руки золотые, то не важно, откуда они растут.
ovt256 вне форума Ответить с цитированием
Старый 15.06.2011, 16:07   #38
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
По умолчанию

Для того, чтобы все вызовы попадали в выборку, надо изменить тип связи таблицы "вызов" с таблицами "больницы" и "повод", как на рисунке.[/QUOTE]

Значит и подсчёт вызовов с опозданием связано тоже с этим?
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Старый 15.06.2011, 16:23   #39
ovt256
Форумчанин
 
Регистрация: 01.04.2011
Сообщений: 226
По умолчанию

Не совсем понял вопрос
Если руки золотые, то не важно, откуда они растут.
ovt256 вне форума Ответить с цитированием
Старый 15.06.2011, 16:32   #40
dr03
Форумчанин
 
Регистрация: 08.04.2011
Сообщений: 119
Смущение

Цитата:
Сообщение от dr03 Посмотреть сообщение
Для того, чтобы все вызовы попадали в выборку, надо изменить тип связи таблицы "вызов" с таблицами "больницы" и "повод", как на рисунке.
простите мне мою безграмотность...а в каком случае мне могут понадобиться 1 и 2 пункт?
OVT 256 МЕГАРЕСПЕКТ!
dr03 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
итоговый столбец по строкам таблицы mortal2010 Microsoft Office Access 22 31.01.2011 10:55
копирование строк на итоговый лист, если ... ruan65 Microsoft Office Excel 2 10.06.2010 14:47
Подготовить теоретическую часть. Jonson37rus Помощь студентам 0 19.04.2010 15:09
Копирование данных с разных на итоговый лист bukjob Microsoft Office Excel 18 05.03.2010 10:08
Итоговый запрос на С++ D[I]K Общие вопросы C/C++ 1 20.09.2009 20:37