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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Блокирование системных сообщений
 
 автор: Промка   (02.12.2009 в 17:57)   личное сообщение
 
 

Кто-нибудь знает не выдавть системное сообщение когда неверно набрана поле типа дата ,а выдать на эту ошибку свое сообщение Спасибо

  Ответить  
 
 автор: Explorer   (02.12.2009 в 18:37)   личное сообщение
 
 

F1

error handling - error trapping - error codes

  Ответить  
 
 автор: Гоблин   (02.12.2009 в 22:40)   личное сообщение
 
 

On Error GoTo Err_Кнопка64_Click

.
.
.
.


Exit_Кнопка64_Click:
Exit Sub

Err_Кнопка64_Click:
MsgBox ("Ты че, козел, опуел?")
Resume Exit_Кнопка64_Click

Куда подробнее? Начинается с оператора безусловного перехода куда перейти в случае чего. Переход к метке Err_Кнопка64_Click: . Вместо нее можно написать L и что угодно. Это мастер по созданию кнопок так пишет. Ну там выходит сообщение MSGBOX какое напишешь. Можно ничего не писать, так ничего не будет. Зареми.

  Ответить  
 
 автор: Промка   (03.12.2009 в 12:49)   личное сообщение
 
 

А можно чуть-чуть поподробнее

  Ответить  
 
 автор: час   (03.12.2009 в 14:37)   личное сообщение
 
 

вот поподробнее
Private Sub Кнопка44_Click()
' не надо ничё сообщать - что ба ни случилося
DoCmd.SetWarnings False

DoCmd.RunSQL "UPDATE Svedeniya SET Svedeniya.Kol_vo = 0, Svedeniya.Korzina = 0 WITH OWNERACCESS OPTION;"

DoCmd.SetWarnings True
' теперь можно любые ошибки обрабатывать и орать - это не так, то не эдак

End Sub

  Ответить  
 
 автор: Мюллер   (03.12.2009 в 14:57)   личное сообщение
 
 

Но ведь при таком раскладе, если я введу в поле вместо даты "скороходов-кулацкая морда",
запрос все равно попытается вставить данные.
Имхо, перед выполнением запроса нужно проводить валидацию поля, а уж затем пытаться что-то куда-то пихать.

Где-то читал, что у акса обработка ошибок осуществляется по принципу

OnError GoTo Hell!

  Ответить  
 
 автор: Гоблин   (03.12.2009 в 15:10)   личное сообщение
 
 

Так ведь блин я же так и сделал. Допустим кнопка созданная мастером. Вот в ней этот код. Дебуг или казенная запись выставляется в случае чего-то нетого. Вместо него будет msgbox про козла. Его только вписать надо.
Кроме того туда можно целый код вписать, который отменит какие-либо действия и выполнит свои.

  Ответить  
 
 автор: Мюллер   (03.12.2009 в 15:11)   личное сообщение
 
 

Я это часу отвечал на его фрагмент кода

  Ответить  
 
 автор: Гоблин   (03.12.2009 в 15:14)   личное сообщение
 
 

Да по часу получится что ничего сообщать не будет. Разве что дебуг вылезет если чего-то совсем нитого. У меня такое было ни единожды.
DoCmd.SetWarnings False - блокирует сообщения.

  Ответить  
 
 автор: kot_k_k   (03.12.2009 в 15:14)   личное сообщение
 
 


"скороходов-кулацкая морда",


не взирая на сегодняшнее мрачное состояние - ржу аки конь и представляю скороходова, 5+

  Ответить  
 
 автор: промка   (03.12.2009 в 18:04)   личное сообщение
 
 

Спасибо.При on error не вхожу в блок обработки ошибки err=0 Warning не блокирует это сообщение .по часу мытарно самому анализировать А может кто- то уже вдавал свое сообщение при неверном задании поля типа дата или оставляли системное?

  Ответить  
 
 автор: Lukas   (03.12.2009 в 18:19)   личное сообщение
 
 


Private Sub Form_Error(DataErr As Integer, Response As Integer)
    Select Case DataErr
        Case Is = 2113 ' Возможны и другие
            MsgBox "Неправильно введено значение даты", vbInformation, Me.Caption
            Response = acDataErrContinue
        Case Else
            Response = acDataErrDisplay
    End Select
End Sub

  Ответить  
 
 автор: промка   (03.12.2009 в 18:32)   личное сообщение
 
 

Эта программа будет автоматом запускаться при ошибке или к ней надо обращаться откуда-то

  Ответить  
 
 автор: Lukas   (03.12.2009 в 18:45)   личное сообщение
 
 

Это обработчик события Error формы.
"...будет автоматом запускаться при ошибке..."
Вот что по этому поводу глаголит справка:


The Error event occurs when a run-time error is produced in Microsoft Access when a form or report has the focus. This includes Microsoft Jet database engine errors, but not run-time errors in Visual Basic.

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