Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: скрестить функции двух кнопок............
 
 автор: Kaktus   (17.08.2007 в 11:42)   личное сообщение
 
 

Уважаемые знатоки!
когдато была наривона база, на форме висят несколько кнопок: сохранить, просмотр отчета, печать отчета, и отправка отчета по почте.
все кнопки вешались стандартными способами (мастерами) без излишеств.........
но недавно, точнее сегодня, выплыла досаднная недоработка..........
дело в том что на форме есть поля обязательные к заполнению, а так как юзеры народ не очень дисциплинированный то бывает что их не заполняют и при сохранении выскакивает ошибка.........
но эта ошибка выскакивает только при сохранении а не при отправке отчета, который данные берет из формы а не из таблицы (ну так уж сделано,и переделывать не хочется).........
и соответственно отчет отправляется а юзеры потом запись с ошибкой не переделывают а тупо закрывают не читая ругательства компьтера, и как результат документ пошел а в архиве такой записи НЕТ................
Внимание: вопрос!.............
пытался на кнопку "отправки" дописать чтобы она вначале сохраняла запись а уж потом делала отчет............если при сохранеии возникала ошибка то процедура бы прекращалась...........
вот листинг "сохранения"

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


может кто знает как это сделать?..............

  Ответить  
 
 автор: Lvm   (17.08.2007 в 12:19)   личное сообщение
 
 

В голову бы не пришло, что в аксессе мастерами можно наваять такую хрень...
Сразу хочется позлорадствовать про отсутствие элементарных понятий по теории СУБД и про мелкософт, который дает возможность создавать отчёт не имея данных...

Ну, а если по делу - проще некуда.

Сохраняет у нас данные строка
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

Если данные неправильные, процедура и вылетит сразу по ошибке.

  Ответить  
 
 автор: Kaktus   (17.08.2007 в 12:46)   личное сообщение
 
 

>хочется позлорадствовать про отсутствие элементарных
>понятий.................

умный да?..............

>Ну, а если по делу.........

то спасиба что снизошли до нас необразованных............

  Ответить  
 
 автор: osmor   (17.08.2007 в 13:17)   личное сообщение
 
 

Ну мне видятся несколько вариантов:
1. сохранение записи перед отправкой в основном так как предложил Lvm , но вместо

DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

написал бы

me.dirty = false


2. написал функция которая проверяет заполненность полей, и возвращает True или False d зависимоти от выполнения условий, вызывал бы эту функцию при отправке отчета и не давал отправлять есkи False

3. Заблокировал бы кнопку отправки.
на события изменения обязательных полей вызывал бы функцию проверки условий (см п.2)
и разблокировал бы кнопку отправки только когда вернет True

  Ответить  
 
 автор: Kaktus   (17.08.2007 в 13:26)   личное сообщение
 
 

а с блокировкой кнопки интересная мысль................
как нить надо будет попробовать, когда руки дойдут...................
пасиба............

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList