|
|
|
| Имеется форма ввода числовых данных в таблицу при вводе в форму текста выдает стандартное сообщение Введенное значение не подходит для данного поля. Можно ли его поменять и как? | |
|
| |
|
|
|
| Можно
обрабатывать событие - изменение (Change)
на событие повешать проверку последнего символа (Right(me![имя поля].text),1))
и если не число или запятая (точка) то все - паника - вывести MsgBox или заранее подготовленную форму | |
|
| |
|
|
|
| Попробуйте использовать маску ввода
или используйте событие формы "Ошибка" (Form_Error) | |
|
| |
|
|
|
| Обработка ошибок
Private Sub Form_Error(DataErr As Integer, Response As Integer)
Select Case DataErr
Case 2113
' Ввод данных некорректного типа
MsgBox "Данные должны быт числом", vbCritical, "Не число"
Response = acDataErrContinue
Case 3022
' Ввод повторяющихся даных
MsgBox "Данные уже существуют", vbCritical, "Повтор"
Response = acDataErrContinue
Case 2105
' Не возможен переход на следующую запись
MsgBox "Нет перехода", vbCritical, "Переход"
Response = acDataErrContinue
Case Else
Response = acDataErrDisplay
End Select
End Sub
|
Кнопка добавления даных
Private Sub save_Click()
On Error GoTo Err_save_Click
DoCmd.GoToRecord , , acNewRec
Err_save_Click:
If Nz(Me.[число], "") = "" Then
MsgBox "Нету ничего!", vbCritical,
Else
MsgBox Err.Description
End If
Resume Exit_save_Click
Exit_save_Click:
Exit Sub
End Sub
|
При добавлении повторяющейся записи выдает ошибку 2105 и стандартный текст ошибки Невозможен переход. Как исправить на свой текст ошибки? | |
|
| |
|
|
|
|
Private Sub save_Click()
On Error GoTo Err_save_Click
If Nz(Me.[число], "") = "" Then
MsgBox "Нету ничего!", vbCritical
exit sub
end if
me.dirty = false
DoCmd.GoToRecord , , acNewRec
Exit_save_Click:
Exit Sub
Err_save_Click:
Select Case Err.Number
Case 2113
' Ввод данных некорректного типа
MsgBox "Данные должны быт числом", vbCritical, "Не число"
Response = acDataErrContinue
Case 3022
' Ввод повторяющихся даных
MsgBox "Данные уже существуют", vbCritical, "Повтор"
Response = acDataErrContinue
Case 2105
' Не возможен переход на следующую запись
MsgBox "Нет перехода", vbCritical, "Переход"
Response = acDataErrContinue
Case Else
MsgBox Err.Number & " " & Err.Description
End Select
Resume Exit_save_Click
End Sub
|
Но вообще пустоту поля тоже можно условием на значение отлавливать | |
|
| |
|