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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Не давать право редактировать ячейку в форме,если она непустая -MSA2000
 
 автор: Dutch Shultz   (01.10.2008 в 15:00)   личное сообщение
 
 

Добрый день!В форме определенным образом заполняются ячейки(в разных записях), и после потери фокуса,необходимо,чтобы их нельзя было редактировать,но можно было вводить данные,если ячейки пустые.Подскажите,пож-ста,как это реализовать?
allowedits может запретить только в уже сохраненных записях,а надо во всех.

Заранее спасибо!

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

форма какая? ленточная? табличная?

  Ответить  
 
 автор: Dutch Shultz   (01.10.2008 в 15:17)   личное сообщение
 
 

Ленточная форма

  Ответить  
 
 автор: osmor   (01.10.2008 в 15:25)   личное сообщение
 
 

как вариант, на событие "получение фокуса" поля проверять наличие в нем данных и блокировать при наличии Locked = True

  Ответить  
 
 автор: Dutch Shultz   (01.10.2008 в 16:48)   личное сообщение
 
 

Подскажите,пож-ста,почему не работает такая обработка получения фокуса:

Private Sub aa_GotFocus()
If Me![aa] = "" Then
Me.AllowEdits = True
Else:
Me.AllowEdits = False
End If
End Sub

  Ответить  
 
 автор: osmor   (01.10.2008 в 16:59)   личное сообщение
 
 

попробуйте
If nz(Me![aa],"") = "" Then ....

и еще, зачем блокировать всю форму?
Private Sub aa_GotFocus()
Me![aa].Locked = (nz(Me![aa],"") = "" )
End Sub

  Ответить  
 
 автор: Dutch Shultz   (06.10.2008 в 16:15)   личное сообщение
 
 

Подскажите,пож-ста,всегда пустую ячейку нужно проверять Nz?Почему,например,нельзя писать =Null или =""?

  Ответить  
 
 автор: час   (06.10.2008 в 20:57)   личное сообщение
 
 

nz - это не проверка это подстраховка....
если значение null или ещё хуже какой нибудь nothing
то nz (null) как раз вернёт нам ""
и вам не надо напарываться на проблему как писать
if null
или
if ""
пишите if nz(поле0)= "" then msgbox "Пусто !!!!!!"

  Ответить  
 
 автор: V.Kim   (15.10.2008 в 15:25)   личное сообщение
 
 

Лучше так

Private Sub аа_GotFocus()
Me.ActiveControl.Locked = Len(Nz(Me.ActiveControl)) <> 0
End Sub

Хотя смысл такой же ...

  Ответить  
 
 автор: FORMAT   (15.10.2008 в 17:15)   личное сообщение
 
 

А что в таком случае делать юзверю, если в ячейку данные были внесены неправильные?

  Ответить  
 
 автор: Dutch Shultz   (17.10.2008 в 11:41)   личное сообщение
 
 

Просто как бы и рассчитано,чтобы никто ничего задним числом не мог менять-поэтому только через администратора

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