|
|
|
| Уважаемые знатоки!
когдато была наривона база, на форме висят несколько кнопок: сохранить, просмотр отчета, печать отчета, и отправка отчета по почте.
все кнопки вешались стандартными способами (мастерами) без излишеств.........
но недавно, точнее сегодня, выплыла досаднная недоработка..........
дело в том что на форме есть поля обязательные к заполнению, а так как юзеры народ не очень дисциплинированный то бывает что их не заполняют и при сохранении выскакивает ошибка.........
но эта ошибка выскакивает только при сохранении а не при отправке отчета, который данные берет из формы а не из таблицы (ну так уж сделано,и переделывать не хочется).........
и соответственно отчет отправляется а юзеры потом запись с ошибкой не переделывают а тупо закрывают не читая ругательства компьтера, и как результат документ пошел а в архиве такой записи НЕТ................
Внимание: вопрос!.............
пытался на кнопку "отправки" дописать чтобы она вначале сохраняла запись а уж потом делала отчет............если при сохранеии возникала ошибка то процедура бы прекращалась...........
вот листинг "сохранения"
Private Sub Сохранить_Click()
On Error GoTo Err_Сохранить_Click
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Exit_Сохранить_Click:
Exit Sub
Err_Сохранить_Click:
MsgBox Err.Description
Resume Exit_Сохранить_Click
End Sub
|
а вот листинг "Отправки отчета"
Private Sub Кнопка237_Click()
On Error GoTo Err_Кнопка237_Click
DoCmd.SendObject acSendReport, "Платежка", acFormatRTF, "petrov@disc.ru", _
, , "Платежка RUS инд " + str(Indecs.Value) + " " + Наименование_получателя.Value, , True
Exit_Кнопка237_Click:
Exit Sub
Err_Кнопка237_Click:
MsgBox Err.Description
Resume Exit_Кнопка237_Click
End Sub
|
может кто знает как это сделать?.............. | |
|
| |
|
|
|
| В голову бы не пришло, что в аксессе мастерами можно наваять такую хрень...
Сразу хочется позлорадствовать про отсутствие элементарных понятий по теории СУБД и про мелкософт, который дает возможность создавать отчёт не имея данных...
Ну, а если по делу - проще некуда.
Сохраняет у нас данные строка
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Ну так и запихни её перед формированием отчета.
Private Sub Кнопка237_Click()
On Error GoTo Err_Кнопка237_Click
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
DoCmd.SendObject acSendReport, "Платежка", acFormatRTF, "petrov@disc.ru", _
, , "Платежка RUS инд " + str(Indecs.Value) + " " + Наименование_получателя.Value, , True
Exit_Кнопка237_Click:
Exit Sub
Err_Кнопка237_Click:
MsgBox Err.Description
Resume Exit_Кнопка237_Click
End Sub
Если данные неправильные, процедура и вылетит сразу по ошибке. | |
|
| |
|
|
|
| >хочется позлорадствовать про отсутствие элементарных
>понятий.................
умный да?..............
>Ну, а если по делу.........
то спасиба что снизошли до нас необразованных............ | |
|
| |
|
|
|
| Ну мне видятся несколько вариантов:
1. сохранение записи перед отправкой в основном так как предложил Lvm , но вместо
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
|
написал бы
2. написал функция которая проверяет заполненность полей, и возвращает True или False d зависимоти от выполнения условий, вызывал бы эту функцию при отправке отчета и не давал отправлять есkи False
3. Заблокировал бы кнопку отправки.
на события изменения обязательных полей вызывал бы функцию проверки условий (см п.2)
и разблокировал бы кнопку отправки только когда вернет True | |
|
| |
|
|
|
| а с блокировкой кнопки интересная мысль................
как нить надо будет попробовать, когда руки дойдут...................
пасиба............ | |
|
| |