|
|
|
|
| см. тут прикрепленные файлики у Леона
http://hiprog.com/forum/read.php?id_forum=1&id_theme=5169 | |
|
| |
|
|
|
| ну если подсказать теоретически....
то у каждого поля есть свойство Locked когда оно false - поле блокируется от внесения записей если true то не блокируется....осталось одно при возникновении определенного условия (в вашем случае наличие галочки во флажке) изменить во всех полях формы это свойство на нужное......
далее не мое - разыскал тут в недрах этого форума
Вопрос: Обработка значений всех полей формы .... или о пользе префиксов (суффиксов) в названиях объектов.
Совет:
Есть некий документ - в данном случае просто форма, в котором находятся некие данные плюс реквизиты некого предприятия (Банковские там и пр....)
Задача:
"Зачистить" (то есть задать значение NULL) этим реквизитам, и только им - остальные поля оставить как есть.
Причем:
В отличии от остальных полей формы, название каждого "зачищаемого" поля реквизитов начинается с "Rec" ( "RecName" =Название предприятия, "RecBank"= Название банка и т.д.) , если нет то следует привести поля под это правило.
Тогда:
...код зачистки будет выглядеть примерно так:
Dim MyControl As Control
Dim MyControlName As String
'цикл по обработке всех обьектов формы
For Each MyControl In Me.Controls
With MyControl
MyControlName = .Name
'проверка имени тек. обьекта
If Left(MyControlName, 3) = "Rec" Then
'если это поле реквизитов то меняем значение
.Value = Null
End If
End With
Next MyControl
теперь вам остается попытаться объединить все что я тут написал
и еще посмотреть тут.....http://hiprog.com/forum/read.php?id_forum=1&id_theme=5124&page=2 | |
|
| |
|
|
|
| а что Вы скажите по поводу этого
Private Sub flag_Click()
If flag=True Then
Form_podForm1.pddate.Enabled = False
Else
Form_podForm1.pddate.Enabled = True
End If
End Sub
не могу понять что такое pddate | |
|
| |
|
|
|
| Для вашей задачи я бы применил событие Form_Dirty:
If Me.ActiveControl.Name = "ИмяФлажка" Then
Me.Refresh 'Изменили флажок - сохраняем запись
ElseIf Me![ИмяФлажка] = True
Cancel = True 'Если флажок установлен - запрещаем редактирование других полей.
End If
|
Form_podForm1.pddate.Enabled = False
|
Здесь запрещается доступ к полю "pddate" на форме "podForm1". Надо сказать, что это нестандартное обращение к форме, я таким не пользуюсь.
Для текущей формы можно так:
Me![pddate].Enabled = False
Для другой открітой формы (не субформы):
Forms![podForm1]![pddate].Enabled = False | |
|
| |
|
|
|
| Все сделал, но вот только он блокирует полностью все записис с таким полем как сделать так чтобы он блокировал только текущую запись? | |
|
| |
|
|
|
| введи в таблицу с данными логическое поле | |
|
| |
|
|
|
| вел, но вот незадача, те записи которые заблокированы при новом открытии формы снова доступны для редактирования, как можно сделать так чтобы все сохранялось? | |
|
| |
|
|
|
| Вы обрабатываете только одно событие - скорее всего После обновления флажка.....
если дополнительно обрабатывать событие формы текущая запись то проблемка решиться | |
|
| |
|
|
|
| а как сделать так чтобы блокировалась заись не только в форме, но и данная запись в таблице? | |
|
| |
|
|
|
| Позвольте поинтересоваться - а за чем?......
если заблокировать текущую запись в таблице от внесения изменений пока форма просматривает запись (ну что бы два и более юзеров не начали бодаться за инфу) то это в настройках ......
а если заблокировать запись в таблице при прямом доступе к таблице то это (для меня) не понятно вообще ...... к таблицам доступ имею только я и ни кто другой, остальные имеют право получать инфу через те алгоритмы которые им предложены и ни как иначе....а предоставить юзерам прямой доступ к таблицам это равносильно что бегемота в посудную лавку завести и оставить без присмотра - за пять минут так заюзают что за 10 лет не разберешься.....
по этому и возник вопрос - почему возникла необходимость блокирования записей прямо в таблице? | |
|
| |