|
|
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
Извиняйтк новичка, но помогите решить проблемку: Есть таблица куда заносятся даты/время начала и конца определённого периода. Есть форма с помощью, которой заносятся даты/время, но как сделать так чтобы можно было проверить есть ли уже такая дата/время в таблице и не пересекаются ли сроки с другими периодами. Скажем так есть два периода №1 и № 2 Время №1 01/01/04 00:00 - 05/01/04 00:00 Если вводить время №2 с 04/01/04 05:00, то это будет пересекаться с периодом №1. Лучше бы сделать так, чтобы каждый следующий период начинался ровно с моменьа окончания предэдущего, тогда видимо не надо будет проверять всё это...Но тоже не знаю как это сделать. Помогите...Кто может помогите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2004, 23:57:39 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
а сколько у вас там времени? часов 7 вечера? если нужно сделать так, чтоб следующий период начинался в момент окончания предыдущего - так запрсом вытаскивай максимальную дату из поля, в котором хранится окончание периода - и подставляй в начало нового периода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 01:01:34 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
Ка уже написал - я новичок. Чуть поподробней каким образом запросом можно это дело втащить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 01:13:00 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
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 немного другой синтаксис :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 01:23:18 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
Я попробовал через DLOOKUP, но дало ошибку run-time error '3464' Или DLOOKUP не работает со датой/временем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 01:26:27 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
Спасибо - обязательно попробую. Если можно, то ещё вопрос: Есть номер машины и у неёё есть своё номер рейса - допустим машина А, рейс №1 Может быть ещё одна машина Б и у неё тоже может быть рейс №1. Как сделать так чтобы номера рейсов не повторялись - я понима, но как сделать чтобы проверялось есть ли уже такой рейс у конкретной машины или нет? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 01:34:58 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
нужно организовать соместный ключ на эти два поля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 01:36:05 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
Если бы я знал как сделать совместный ключ, то сказал бы СПАСИБО, а так вынужден задать вопрос про совместный ключ. В книге по ACCESS что-то не находится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 01:43:47 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
Выделяешь в конструкторе несколько поелй, удерживая шифт. И жмакаешь на кнопку "ключ". В итоге слева появятся ключи у этих полей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 01:50:44 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
Мне кажется, что в моём случае просто запросом перитаскивания максимальной даты не совсем правильно. В этом запросе не будет сравнения по какой машине идёт выборка поэтому может вытащить период, который принадлежит другой машине. Получается, что при вводе нового номера рейса и даты/времени необходимо сравнивать есть ли такой же № и эта дата/время у этой машины или нет и можно записать новое. как сделать - не знаю. Приморов по своему вопросу пока не нашёл. Чего делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 01:53:29 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
Кхм... Уважаемый, а давайте теперь весь вопрос целиком. Не по частям. И тогда будем его решать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 01:55:34 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
Есть, скажем две машины - НР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 Вроде бы всё вместе собрал Каким образом всё это дело сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 02:04:45 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
Чапай думает.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 02:08:38 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
То что написал, это только начало...потому как машины будут возить грузы (возможно и одинаковые)...Видать придётся весть проект описывать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 02:10:38 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
Можеть аська есть или какой из других месенджеров? Вроде бы там пооперативней получается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 02:12:57 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
Ну да... Оперативней... Только я еще работу работаю :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 02:21:04 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
Описывай проект, напиши, как думаешь решать, а я, в случае чего постараюсь поправить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 02:32:12 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
Исходя из вопроса, у тебя как минимум 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 при такой конструкции можно обойтись без сложных ключей (которые по мнгоим полям) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 12:54:05 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
Господа! У меня дежа-вю. По-моему, совсем недавно тут был топик с точно такой же задачкой. Там были и селекты, и первичные ключи, и чего только не было. И участвовал в том топике почти весь цвет форума (VIG, Victosha, Лох Позорный, paparome и другие). Но найти его я не могу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 13:13:30 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
Нашел!!! /topic/113198&pg=-1 С составом участников я немного промахнулся... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 13:35:35 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
ага, в точности вот это /topic/113198&pg=-1#872773 только условие на ИД "машины" добавить... ЗЫ Саныч фсё помнит... :) Что-то paparome редко появляться стал... (с выражением лица) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2004, 19:06:41 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
А фотку так и не дала.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2004, 00:47:51 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
авторА фотку так и не дала.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2004, 01:39:15 |
|
||
|
Дата/Время (не пересекаются ли сроки с другими периодами)
|
|||
|---|---|---|---|
|
#18+
ТемныйА фотку так и не дала.... Видно, не успела... По причине потери интересу к вопросу посередь дороги прямо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2004, 02:42:33 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32690540&tid=1671734]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
31ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 314ms |

| 0 / 0 |
