|
|
|
| Добрый день!В форме определенным образом заполняются ячейки(в разных записях), и после потери фокуса,необходимо,чтобы их нельзя было редактировать,но можно было вводить данные,если ячейки пустые.Подскажите,пож-ста,как это реализовать?
allowedits может запретить только в уже сохраненных записях,а надо во всех.
Заранее спасибо! | |
|
| |
|
|
|
| форма какая? ленточная? табличная? | |
|
| |
|
|
|
|
| как вариант, на событие "получение фокуса" поля проверять наличие в нем данных и блокировать при наличии Locked = True | |
|
| |
|
|
|
| Подскажите,пож-ста,почему не работает такая обработка получения фокуса:
Private Sub aa_GotFocus()
If Me![aa] = "" Then
Me.AllowEdits = True
Else:
Me.AllowEdits = False
End If
End Sub | |
|
| |
|
|
|
| попробуйте
If nz(Me![aa],"") = "" Then ....
и еще, зачем блокировать всю форму?
Private Sub aa_GotFocus()
Me![aa].Locked = (nz(Me![aa],"") = "" )
End Sub | |
|
| |
|
|
|
| Подскажите,пож-ста,всегда пустую ячейку нужно проверять Nz?Почему,например,нельзя писать =Null или =""? | |
|
| |
|
|
|
| nz - это не проверка это подстраховка....
если значение null или ещё хуже какой нибудь nothing
то nz (null) как раз вернёт нам ""
и вам не надо напарываться на проблему как писать
if null
или
if ""
пишите if nz(поле0)= "" then msgbox "Пусто !!!!!!" | |
|
| |
|
|
|
| Лучше так
Private Sub аа_GotFocus()
Me.ActiveControl.Locked = Len(Nz(Me.ActiveControl)) <> 0
End Sub
Хотя смысл такой же ... | |
|
| |
|
|
|
| А что в таком случае делать юзверю, если в ячейку данные были внесены неправильные? | |
|
| |
|
|
|
| Просто как бы и рассчитано,чтобы никто ничего задним числом не мог менять-поэтому только через администратора | |
|
| |