Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Me.Form.AllowEdits = False / 11 сообщений из 11, страница 1 из 1
07.01.2004, 14:03
    #32369948
Анн
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Me.Form.AllowEdits = False
После выполнения этого кода изменять все поля в форме
становится нельзя. А можно ли после этого разрешить изменять
какое-либо одно поле?
...
Рейтинг: 0 / 0
07.01.2004, 14:12
    #32369951
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Me.Form.AllowEdits = False
Нет.
Вам надо пройти по полям и установить Locked = True для всех, кроме нужного.

А почему Me.Form.AllowEdits = False, а не Me.AllowEdits = False?
...
Рейтинг: 0 / 0
07.01.2004, 14:40
    #32369964
Анн
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Me.Form.AllowEdits = False
To Serge Gavrilov
Я так все поля перебираю и блокирую, оставляя только необходимые.
Просто полей много.
...
Рейтинг: 0 / 0
07.01.2004, 15:03
    #32369969
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Me.Form.AllowEdits = False
Какая разница сколько их? Перебирайте все контролы, и если контрол имеет ControlSource то блокируете его

Примерно так
Dim ctl As Control
Dim tmpStr As String
On Error Resume Next
For Each ctl In Me.Controls
tmpStr = ctl.ControlSource
If Err.Number = 0 Then If ctl.Name <> "ИмяРедактируемогоПоля" Then ctl.Locked = True
Err.Clear
Next
...
Рейтинг: 0 / 0
07.01.2004, 16:10
    #32369985
Анн
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Me.Form.AllowEdits = False
To Serge Gavrilov
Спасибо за идею.
Вот так работает как надо!

Dim ctl As Control

For Each ctl In Me.Controls
' Если элемент - поле
If ctl.ControlType = acTextBox Then
If ctl.Name <> "ИмяПоля" Then ctl.Locked = True
End If
Next ctl
...
Рейтинг: 0 / 0
07.01.2004, 16:18
    #32369991
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Me.Form.AllowEdits = False
Еще надо где-то ctl.Locked = False.
...
Рейтинг: 0 / 0
07.01.2004, 16:26
    #32369993
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Me.Form.AllowEdits = False
>Вот так работает как надо!

Ну, если у вас только текстбоксы ...
Но ведь могут быть и комбобоксы, и чекбоксы, и т.п.
...
Рейтинг: 0 / 0
07.01.2004, 16:27
    #32369994
Анн
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Me.Form.AllowEdits = False
Наверное так:

If ctl.Name <> "ИмяПоля" Then
ctl.Locked = True
Else
ctl.Locked = False
End If
...
Рейтинг: 0 / 0
07.01.2004, 16:31
    #32369996
Анн
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Me.Form.AllowEdits = False
Только текстбоксы.
...
Рейтинг: 0 / 0
07.01.2004, 16:33
    #32369997
Serge Gavrilov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Me.Form.AllowEdits = False
Можно и так

ctl.Locked= Not (ctl.Name="ИмяПоля")
...
Рейтинг: 0 / 0
07.01.2004, 16:51
    #32370004
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Me.Form.AllowEdits = False
ctl.Locked=ctl.Name<>"ИмяПоля" :^)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Me.Form.AllowEdits = False / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]