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

Форум: MS ACCESS

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

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

 
 

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

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

тема: перекрест по времени
 
 автор: vindi   (24.05.2011 в 19:42)   личное сообщение
 
 

версия 2007
Помогите, пожалуйста.
вот записи в таблице
поля:номер компа,имя,начало работы,конец работы
за компьютером номер 1 сидит человек А с 10.00 до 12.00
следующая запись за тем же компьютером сидит человек В с 11.00 до 12.30


видно что перекрест по времени,противоречиво-тк 2 человека не могут сидеть за одним компьютером в одно и тоже время
как сделать запрос,чтобы программа выдала эти две противоречивые записи

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

Лучше, наверное, при записи данных - проверять занятость данного периода времени. ИМХО

  Ответить  
 
 автор: vindi   (24.05.2011 в 23:41)   личное сообщение
 
 

ну а как это проверить автоматически,а не самому проверять?
чтото типо индексированных полей,но ведь программа воспринимает эти 2 точки времени именно как два числа,а не как временной отрезок

  Ответить  
 
 автор: kot_k_k   (25.05.2011 в 17:38)   личное сообщение
 
 


программа воспринимает эти 2 точки времени именно как два числа,а не как временной отрезок



а на кой придумали оператор Between

  Ответить  
 
 автор: Гоблин   (24.05.2011 в 22:34)   личное сообщение
 
 

Попробуй сравнить конец первого с началом второго
if(11.00-12.00)<0 then
msgbox("Перехлест")

  Ответить  
 
 автор: vindi   (24.05.2011 в 23:45)   личное сообщение
 
 

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

  Ответить  
 
 автор: ser60   (25.05.2011 в 05:35)   личное сообщение
 
 

тогда нужен контроль при вводе второй записи на перекрест времени BeforeUpdate, и если есть такое, то ввкести запрет на ввод второй записи

  Ответить  
 
 автор: Гоблин   (25.05.2011 в 07:39)   личное сообщение
 
 

Бери последнюю запись на текущую дату и сравнивай по ходу вводимой.
Еще лучше, если время начала будет автоматом вводиться при начале сеанса, а не вручную.

  Ответить  
 
 автор: Дядя Федор   (25.05.2011 в 15:54)   личное сообщение
 
 

примерно так - в примере на форме поля nomkomp, tbegin,tend
источник данных таблица Таблица3tbte (или твоя, и поля твои)
на поле tbegin вешаем обработчик (после обновления)



' в данном случае если время начала следубщего меньще окночания предыдущего(максимального), то начало=концу предыдущего
Private Sub tbegin_AfterUpdate()
Dim timebegin As Double
timebegin = DMax("[tend]", "Таблица3tbte", "[nomkomp]=" & Me.nomkomp)
If Me.tbegin < timebegin Then
 Me.tbegin = timebegin
End If
End Sub
'действия по then можешь сам придумать - сообщение там или еще что



Для полноты проверок надо и время окончания что б было больше времени начала

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