| |
|
|
| | Имеется таблица 5 полей
1 дата начала события
2 дата окончания события
3 событие
4 место события
надо вывести на экран таблицу,
где на одном месте события(4) (критерий отбора) -
произошли события в одно и тоже время(1)-(2).
То есть периоды свершения событий перекрыли друг друга. | |
| |
| |
| |
|
|
| | А нет ли таблицы в базе, связанной с таблицей Событий, где детали события расписаны по дням? | |
| |
| |
| |
|
|
| | по дням нет
есть только такая, хотя......
помните вопрос по датам....
можно создать , но время на это уйдёт немерянно
потому как общий интервал - как минимуи год ~ 365 дней | |
| |
| |
| |
|
|
| | сердцем чую надо пару битвин ов, а вот практически как это реализовать......... вопрос не решается............ | |
| |
| |
| |
|
|
| | может, если обрисовать задачу немного иначе - будет решение
Надо проверять лишь вновь вводимую запись со всеми имеющимися в таблице и если есть наложение - тода сказать юзеру - это извините не пройдёт Вам даром!
счас у меня там минимум 4 ункции, рекодсеты, даты значения - ногу сломит.
В результате выводиться - всё чё нужно конечно, но это ...... ..... | |
| |
| |
| |
|
|
| | Так попроще, тогда можно обойтись циклом дат от Начала до Конца новой записи с проверкой на вхождение в интервал дат старых записей. | |
| |
| |
| |
|
|
| | На BeforeUpdate формы обратиться к таблице (например - DLookup) с условием отбора:
DateStart <= DateEndNew AND Table1.DateEnd >= DateStartNew
Посмотреть все пересекающиеся записи можно так:
SELECT *
FROM Table1 INNER JOIN Table1 AS Table1_1 ON (Table1.DateStart <= Table1_1.DateEnd AND Table1.DateEnd >= Table1_1.DateStart)
WHERE Table1.ID <> Table1_1.ID | |
| |
| |
| |
|
|
| | СПАСИБО!!!
попробую.....
или погожу........... | |
| |
| |
| |
|
|
| | чё та Table1.DateStart <= Table1_1.DateEnd
"не могу себе представить как можно представить это в конструкторе " - говорит access | |
| |
| |
| |
|
|
| | Такую связь между таблицами можно нарисовать только в режиме SQL. | |
| |
| |
| |
|
|
| | А я, наивный, - хотел в режиме конструктора сварганить
 | |
| |
| |
| |
|
|
| | я попросил :
DoCmd.RunSQL "SELECT * FROM Table1 INNER JOIN Table1 AS Table1_1 ON (Table1.Date_First_Air <= Table1_1.Date_Last_Air AND Table1.Date_Last_Air >= Table1_1.Date_First_Air) WHERE Table1.ID <> Table1_1.ID"
|
А в ответ:
Для макрокоманды ЗапускЗапроса SQL требуется аргумент, состоящий из инструкции SQL
Эт наверное шутка Access .(Фссуыы) | |
| |
| |
| |
|
|
| | У вас запрос на выборку, а DoCmd.RunSQL выполняет запросы на изменение.
Нужно в конструкторе нового запроса перейти в режим "SQL", вставить выражение, выполнить (что бы проверить) и сохранить.
Ну или на базе этого выражения открывать Recordset. | |
| |
| |
| |
|
|
| | Да спасибо, я догадался........ | |
| |
| |
| |
|
|
| | Красота!
Спасибо Анатолию(Киев)! | |
| |
| |
| |
|
|
| | Удалено.
Если неправ, более опытные форумчане меня поправят, надеюсь.  | |
| |
| |