Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Дата/Время (не пересекаются ли сроки с другими периодами) / 25 сообщений из 34, страница 1 из 2
10.09.2004, 23:57:39
    #32690503
tsoifun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
Извиняйтк новичка, но помогите решить проблемку:
Есть таблица куда заносятся даты/время начала и конца определённого периода.
Есть форма с помощью, которой заносятся даты/время, но как сделать так чтобы можно было проверить есть ли уже такая дата/время в таблице и не пересекаются ли сроки с другими периодами.
Скажем так
есть два периода
№1 и № 2
Время №1 01/01/04 00:00 - 05/01/04 00:00
Если вводить время №2 с 04/01/04 05:00, то это будет пересекаться с периодом №1.
Лучше бы сделать так, чтобы каждый следующий период начинался ровно с моменьа окончания предэдущего, тогда видимо не надо будет проверять всё это...Но тоже не знаю как это сделать.
Помогите...Кто может помогите
...
Рейтинг: 0 / 0
11.09.2004, 01:01:34
    #32690521
Дата/Время (не пересекаются ли сроки с другими периодами)
а сколько у вас там времени? часов 7 вечера?

если нужно сделать так, чтоб следующий период начинался в момент окончания предыдущего - так запрсом вытаскивай максимальную дату из поля, в котором хранится окончание периода - и подставляй в начало нового периода
...
Рейтинг: 0 / 0
11.09.2004, 01:13:00
    #32690527
tsoifun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
Ка уже написал - я новичок. Чуть поподробней каким образом запросом можно это дело втащить?
...
Рейтинг: 0 / 0
11.09.2004, 01:23:18
    #32690531
Дата/Время (не пересекаются ли сроки с другими периодами)
dim rs as dao.recordset
dim NewPeriodStart as date

set rs = currentdb.openrecordset("SELECT max(поле в котором конец периода) as MaxDate FROM TBL_NAME")
NewPeriodStart = rs(0)

rs.close
set rs = nothing

Это через DAO - в ADO немного другой синтаксис :)
...
Рейтинг: 0 / 0
11.09.2004, 01:26:27
    #32690533
tsoifun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
Я попробовал через DLOOKUP, но дало ошибку run-time error '3464'
Или DLOOKUP не работает со датой/временем?
...
Рейтинг: 0 / 0
11.09.2004, 01:34:58
    #32690537
tsoifun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
Спасибо - обязательно попробую.

Если можно, то ещё вопрос:
Есть номер машины и у неёё есть своё номер рейса - допустим машина А, рейс №1
Может быть ещё одна машина Б и у неё тоже может быть рейс №1.
Как сделать так чтобы номера рейсов не повторялись - я понима, но как сделать чтобы проверялось есть ли уже такой рейс у конкретной машины или нет?
Спасибо
...
Рейтинг: 0 / 0
11.09.2004, 01:36:05
    #32690538
Дата/Время (не пересекаются ли сроки с другими периодами)
нужно организовать соместный ключ на эти два поля.
...
Рейтинг: 0 / 0
11.09.2004, 01:43:47
    #32690540
tsoifun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
Если бы я знал как сделать совместный ключ, то сказал бы СПАСИБО, а так вынужден задать вопрос про совместный ключ. В книге по ACCESS что-то не находится
...
Рейтинг: 0 / 0
11.09.2004, 01:50:44
    #32690541
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
Выделяешь в конструкторе несколько поелй, удерживая шифт. И жмакаешь на кнопку "ключ". В итоге слева появятся ключи у этих полей
...
Рейтинг: 0 / 0
11.09.2004, 01:53:29
    #32690542
tsoifun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
Мне кажется, что в моём случае просто запросом перитаскивания максимальной даты не совсем правильно. В этом запросе не будет сравнения по какой машине идёт выборка поэтому может вытащить период, который принадлежит другой машине. Получается, что при вводе нового номера рейса и даты/времени необходимо сравнивать есть ли такой же № и эта дата/время у этой машины или нет и можно записать новое. как сделать - не знаю. Приморов по своему вопросу пока не нашёл. Чего делать?
...
Рейтинг: 0 / 0
11.09.2004, 01:55:34
    #32690544
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
Кхм... Уважаемый, а давайте теперь весь вопрос целиком. Не по частям. И тогда будем его решать.
...
Рейтинг: 0 / 0
11.09.2004, 02:04:45
    #32690547
tsoifun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
Есть, скажем две машины - НР1 и НР2. у каждой машины может быть несколько рейсов, но номерация рейсов у каждой может совпадать -1,2 и т.д., но не у конкретной машины номерация не должна совпадать.
Так же могут совпадать, теоретически, временные периоды каждой из этих машин, но у каждой конкретной машины период не должен повторяться или пересекаться, а каждый новый период должен начинаться с окончанием последнего
Т.е. Машина НР1
рейс №1 01/01/2004 15:50 - 05/01/2004 10:00
рейс №2 05/01/2004 10:00 - 10/01/2004 14:00

Машина НР2 так же может иметь:
рейс №1 01/01/2004 15:50 - 05/01/2004 10:00
рейс №2 05/01/2004 10:00 - 10/01/2004 14:00

Но у НР1 или НР2 не должно быть ещё №1 или №3, который будет находиться в периоде, скажем от 03/01/2004 18:00 до 09/01/2004 23:00
Вроде бы всё вместе собрал

Каким образом всё это дело сделать?
...
Рейтинг: 0 / 0
11.09.2004, 02:08:38
    #32690548
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
Чапай думает....
...
Рейтинг: 0 / 0
11.09.2004, 02:10:38
    #32690550
tsoifun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
То что написал, это только начало...потому как машины будут возить грузы (возможно и одинаковые)...Видать придётся весть проект описывать...
...
Рейтинг: 0 / 0
11.09.2004, 02:12:57
    #32690551
tsoifun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
Можеть аська есть или какой из других месенджеров? Вроде бы там пооперативней получается
...
Рейтинг: 0 / 0
11.09.2004, 02:21:04
    #32690552
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
Ну да... Оперативней... Только я еще работу работаю :)
...
Рейтинг: 0 / 0
11.09.2004, 02:32:12
    #32690554
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
Описывай проект, напиши, как думаешь решать, а я, в случае чего постараюсь поправить.
...
Рейтинг: 0 / 0
11.09.2004, 12:54:05
    #32690628
skif152
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
Исходя из вопроса, у тебя как минимум 2 таблицы - в одной описываешь автомобили (в этой же таблице их ID), и 2-я таблица - с данными об их рейсах. Ну так и организуй главную форму (по первой таблице) и подчинённую ленточную (по 2-й таблице), связь - по ID.
На BeforeInsert подчинённой формы вешаешь нечто:

Sub Form_BeforeInsert(Cancel As Integer)
dim rs as recordset
set rs = me.recordsetclone
'далее: если таблица - подсоединённая, то надо не rs.recordcount, а
'rs.movelast с применением EOF/BOF + error, iserror(), on error goto и т.д.
if rs.recordcount = 0 then 'если машина вообще не совершала в жизни рейсов, т.е. новая
me!<Поле формы, в котором дата начала нового рейса> = now()
me!<Поле формы, в котором номер нового рейса> = 1
else
rs.movelast
dim asd as Date, wer as long
asd = rs!<поле таблицы, в котором дата окончания последнего рейса>
wer = rs!<поле таблицы, в котором номер последнего рейса>
me!<Поле формы, в котором дата начала нового рейса> = asd 'новый рейс начинается с даты 'окончания последнего
me!<Поле формы, в котором номер нового рейса> = wer + 1 ' номер нового рейса = номер 'старого + 1
enf if
rs = клозед
rs = нафиг
End sub

при такой конструкции можно обойтись без сложных ключей (которые по мнгоим полям)
...
Рейтинг: 0 / 0
11.09.2004, 13:13:30
    #32690631
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
Господа! У меня дежа-вю. По-моему, совсем недавно тут был топик с точно такой же задачкой. Там были и селекты, и первичные ключи, и чего только не было. И участвовал в том топике почти весь цвет форума (VIG, Victosha, Лох Позорный, paparome и другие). Но найти его я не могу...
...
Рейтинг: 0 / 0
11.09.2004, 13:35:35
    #32690633
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
Нашел!!!
/topic/113198&pg=-1

С составом участников я немного промахнулся...
...
Рейтинг: 0 / 0
11.09.2004, 19:06:41
    #32690741
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
ага, в точности вот это
/topic/113198&pg=-1#872773

только условие на ИД "машины" добавить...
ЗЫ
Саныч фсё помнит... :)
Что-то paparome редко появляться стал...


(с выражением лица)
...
Рейтинг: 0 / 0
12.09.2004, 00:47:51
    #32690791
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
А фотку так и не дала....
...
Рейтинг: 0 / 0
12.09.2004, 01:39:15
    #32690798
кедзо
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
авторА фотку так и не дала....
...
Рейтинг: 0 / 0
12.09.2004, 02:42:33
    #32690804
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
ТемныйА фотку так и не дала....
Видно, не успела...
По причине потери интересу к вопросу посередь дороги прямо...
...
Рейтинг: 0 / 0
12.09.2004, 06:55:05
    #32690813
Темный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дата/Время (не пересекаются ли сроки с другими периодами)
Испугалась задействованного количества мозгов
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Дата/Время (не пересекаются ли сроки с другими периодами) / 25 сообщений из 34, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]