Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите решить задачку
 
 автор: час   (15.09.2008 в 09:30)   личное сообщение
 
 

Имеется таблица 5 полей
1 дата начала события
2 дата окончания события
3 событие
4 место события

надо вывести на экран таблицу,
где на одном месте события(4) (критерий отбора) -
произошли события в одно и тоже время(1)-(2).
То есть периоды свершения событий перекрыли друг друга.

  Ответить  
 
 автор: Lukas   (15.09.2008 в 13:39)   личное сообщение
 
 

А нет ли таблицы в базе, связанной с таблицей Событий, где детали события расписаны по дням?

  Ответить  
 
 автор: час   (15.09.2008 в 13:43)   личное сообщение
 
 

по дням нет
есть только такая, хотя......
помните вопрос по датам....
можно создать , но время на это уйдёт немерянно
потому как общий интервал - как минимуи год ~ 365 дней

  Ответить  
 
 автор: час   (15.09.2008 в 13:48)   личное сообщение
 
 

сердцем чую надо пару битвин ов, а вот практически как это реализовать......... вопрос не решается............

  Ответить  
 
 автор: час   (15.09.2008 в 13:52)   личное сообщение
 
 

может, если обрисовать задачу немного иначе - будет решение
Надо проверять лишь вновь вводимую запись со всеми имеющимися в таблице и если есть наложение - тода сказать юзеру - это извините не пройдёт Вам даром!
счас у меня там минимум 4 ункции, рекодсеты, даты значения - ногу сломит.
В результате выводиться - всё чё нужно конечно, но это ...... .....

  Ответить  
 
 автор: Lukas   (15.09.2008 в 14:00)   личное сообщение
 
 

Так попроще, тогда можно обойтись циклом дат от Начала до Конца новой записи с проверкой на вхождение в интервал дат старых записей.

  Ответить  
 
 автор: Анатолий (Киев)   (15.09.2008 в 14:29)   личное сообщение
 
 

На 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

  Ответить  
 
 автор: час   (15.09.2008 в 14:35)   личное сообщение
 
 

СПАСИБО!!!
попробую.....
или погожу...........

  Ответить  
 
 автор: час   (15.09.2008 в 15:03)   личное сообщение
 
 

чё та Table1.DateStart <= Table1_1.DateEnd
"не могу себе представить как можно представить это в конструкторе " - говорит access

  Ответить  
 
 автор: Анатолий (Киев)   (15.09.2008 в 16:54)   личное сообщение
 
 

Такую связь между таблицами можно нарисовать только в режиме SQL.

  Ответить  
 
 автор: час   (15.09.2008 в 20:11)   личное сообщение
 
 

А я, наивный, - хотел в режиме конструктора сварганить

  Ответить  
 
 автор: час   (16.09.2008 в 10:17)   личное сообщение
 
 

я попросил :

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 .(Фссуыы)

  Ответить  
 
 автор: Анатолий (Киев)   (16.09.2008 в 10:29)   личное сообщение
 
 

У вас запрос на выборку, а DoCmd.RunSQL выполняет запросы на изменение.
Нужно в конструкторе нового запроса перейти в режим "SQL", вставить выражение, выполнить (что бы проверить) и сохранить.
Ну или на базе этого выражения открывать Recordset.

  Ответить  
 
 автор: час   (16.09.2008 в 11:34)   личное сообщение
 
 

Да спасибо, я догадался........

  Ответить  
 
 автор: Lukas   (15.09.2008 в 14:38)   личное сообщение
 
 

Красота!
Спасибо Анатолию(Киев)!

  Ответить  
 
 автор: Lukas   (15.09.2008 в 13:54)   личное сообщение
 
 

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

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList