Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > MS Access > Обработка ошибок |
Автор: Yashustik 26.8.2008, 14:57 |
Помогите решить такую проблему: у меня есть таблица с обязательными для ввода полями, при попытке закрытия таблицы Access ругается если хотя бы одно из этих полей не заполнено. Как можно обработать эту ошибку, чтобы в корректной форме пользователь мог отказать от сохренения такой записи. |
Автор: Akina 26.8.2008, 15:07 |
А почему пользователю вообще дозволено напрямую работать с таблицами??? для этого существуют формы ввода - связанные или свободные. |
Автор: Yashustik 26.8.2008, 15:10 |
Так он и работает через ленточную форму, данных вводить надо много, в какой то момент он передумал заводить все доконца и решил закрыть форму, вот тут то ошибки и побежали, пользователь пугается, нельзя ли его более корректно предупредить что данные не сохранятся(точнее только последняя запись) |
Автор: Akina 26.8.2008, 15:53 |
А вы используйте Default Value для каждого поля - никаких предупреждений и не будет. А если дефолтные значения будут формально валидны, но смысловО нелогичны - выслеживание таких "недоделанных" записей, случайно попавших в таблицы, станет очень простым делом. Их можно будет и исключить из обработки, и предлагать на редактирование при следующем открытии формы ввода. Хотя по-хорошему надо бы оторвать форму от таблицы и записывать туда сразу всю запись со всеми полями. Программненько. По кнопочке. А заодно проверять, чего там оператор навносил... |
Автор: Yashustik 26.8.2008, 16:02 |
Попробовала везде по умолчанию забить нули, но ошибка все равно вываливается...:( |
Автор: Yashustik 26.8.2008, 16:35 | ||
Попробовала сделать так, но даже после закрытия формы сообщение об ошибке все равно вылетает :(
|
Автор: Yashustik 26.8.2008, 16:54 |
Мне в принципе не важно на что ругается, главное, чтобы была возможность у пользователя несохранять недоделанную по каким бы то причинам запись, откатиться назад, либо просто выйти без сохранения. |
Автор: Akina 26.8.2008, 17:10 | ||||||||
А сообщение об ошибке не связано с формой, оно генерируется подсистемой контроля целостности данных.
Значит, где-то что-то пропускаете. Забивайте не тупые нули, а осмысленные формально валидные значения. А то ноль, скажем, в дате, ну никак контроля не пройдет... Добавлено через 52 секунды
|
Автор: bopoha 26.8.2008, 17:13 |
Нужно же понять почему и где. Попробуйте обработать ошибку (штатными средствами VB - On error) в события до вставки и до обновления (только я не уверен, что это может помочь). |