Нарушение первичного ключа

_Alexander_
Дата: 04.06.2004 19:23:02
В таблице первичный ключ по дате и подразделению (один документ в день).
Как показала практика юзера постоянно про это забывают и пытаются создать еще один (или просто ошибаются), естественно получают месагу о нарушении первичного ключа. После такого сообщения у них истерика. Как бы мне не дать им сохранить неправильные данные?
Интересует именно момент сохранения, т.к. документ создается со значениями по-умолчанию, приводящими к ошибке при сохранении, юзера их потом должны поменять.
bazaea
Дата: 04.06.2004 19:30:08
попробуй создать форму для ввода данных с обработчиком ошибок например
_Alexander_
Дата: 04.06.2004 19:35:40
А что, нельзя проверять данные которые сохраняються?
Владимир Саныч
Дата: 04.06.2004 19:39:09
Можно, конечно. На BeforeInsert:

if dcount(...)>0 then
msgbox...
cancel=true
end if
_Alexander_
Дата: 04.06.2004 19:45:19
Саныч, а разве BeforeInsert не тогда когда я вставляю данные в контрол?
Идея такая: вставляйте все что угодно, главное не сохраняйте.
Владимир Саныч
Дата: 04.06.2004 19:50:56
BeforeInsert - это событие формы. Пока у записи сбоку нарисован карандашик, она находится только в памяти. Потом юзер ее сохраняет физически (простейший случай - путем перехода на другую запись), и вот тогда-то происходит BeforeInsert. При этом если в обработчике сделано cancel=true, то сохранение отменяется, переход на другую запись тоже отменяется, а эта запись остается только в памяти и с карандашиком.
_Alexander_
Дата: 04.06.2004 19:58:29
Почему это событие возникает когда я перехожу на следующую запись и заполняю дефами?
Владимир Саныч
Дата: 04.06.2004 20:03:36
Кто такие дефы?
_Alexander_
Дата: 04.06.2004 20:09:15
Звиняюсь :)
Defaults, значения по-умолчанию. Заполняю скриптом. Если не заполняю- событие не возникает. Как я это определил? Просто вывел месадж.
Владимир Саныч
Дата: 04.06.2004 20:10:19
Каким образом создается запись? И каким образом заносятся дефы?