|
|
|
| как применить AllowEdits=False ко всем формам? | |
|
| |
|
|
|
| перебором коллекции форм - открытия в скрытом режиме конструктора - присвоения свойства - закрытия с сохранением формы
п.с. и так 40 раз | |
|
| |
|
|
|
|
| перебор коллекции однозначно, а как ты доберешься до имени формы, - вот нужно ли открывать в редакторе ХЗ | |
|
| |
|
|
|
| Сделать глоб. переменную
GL_ALLEDIT
И проверять ее при открытии всех форм.
Придется конечно добавить пару строк во все формы.
Но зато переменную менять один раз. | |
|
| |
|
|
|
| а писанины | |
|
| |
|
|
|
| Че-то я не понял. Это типа если кто открывает базу, кому она только для чтения что ли? Или это при определенных условиях открытая форма не дает править. Во всех случаях это свойство можно передать форме при открытии. | |
|
| |
|
|
|
| это открытие базы как для просмотра, типа гостевой вход. форм ного и на открытие каждой писать не оч хочется (хотя сдлал так, но мне кажется это не правильно) | |
|
| |
|
|
|
| а блокировать разные кнопочки и контекстные менюшки | |
|
| |
|
|
|
| это руками приходится делать | |
|
| |
|
|
|
| как вариант
создать авторизацию при входе
создать таблу в которой имя юзера (его роль), имя формы, имя контрола, свойство (Visible Enadle и проч) и значение для этого пользователя - с этой ролью.
и при загрузке каждой формы обращение к табле и выставление свойств в нужное состояние.
но писанины!!!! хотя и красиво - у самого на такое руки не доходят. | |
|
| |
|
|
|
| А разве это не реализовано в аксе уже. Например, если мастером создавать кнопочную форму, то там заложено в каком режиме открывать какую форму. И таблица эта создается сама. Осталось применить это, а кнопочные формы открывать в зависимости от введенного пользователя (пароля).. Вот и будет без больших доработок либо все откроется для чтения, либо как угодно.
В принципе я с этим не заморачивался раньше, но можно было бы попробовать.
(имею в виду главная кнопочная форма будет открываться в зависимости от пользователя, а далее уж что она откроет)
Поле ввода пользователя с паролем может быть можно было бы разместить на самой главной кнопочной форме. | |
|
| |
|
|
|
| эта форма открывает только стартовые формы а когда из формы открываешь форму и т.д. - руцями | |
|
| |
|
|
|
| ввод пароля есть, я хотел упростить себе жизнь, но коли пришлось для каждой формы еще прописывать чать кнопок менять их активноть и видимость, то сдедлал все в ручную. | |
|
| |
|
|
|
| мдя ... не думал, но сегодня для меня тема стала актуальной ... господа монстры и не только ..
плыззи ... кусочек кода для перебора всех форм и присвоения им "особых" свойств (типа удалениеи изменение запрещено, а вот добавление новых записей разрешено) ... ну оччень надо и очччччень надеюсь на понимание и поддержку ! | |
|
| |
|
|
|
| Тут похоже принцип надо придумать. Не скажу, что так правильно будет, но только суть задумки. А вдруг такое сработает.
With frm
.AllowAdditions = False
.AllowEdits = False
.DataEntry = True
End With
Это понятно что к чему. Так вот. Сам не пробовал, но копал бы в таком направлении.
Создать таблицу, в которой перечислены имена имеющихся форм. В другом столбце соотствующее свойство. DaoRecorsetom пробегая по таблице, присваивать соотсветствующим формам соответствующие свойства при открытии.
Dim rst As DAO.Recordset
DoCmd.SetWarnings False
Set rst = CurrentDb.OpenRecordset("SELECT Настройки.ИмяФормы, Настройки.Свойство, FROM Настройки WHERE (((Настройки.Код) In (" & Условие & ")));")
With rst
If .RecordCount <> 0 Then
Do While Not .EOF
if .....чего-то там (имя пользователя, пароль, или имя формы = !ИмяФормы)
![ИмяФормы]&!СвойствоФормы
end if
.MoveNext
Loop
End If
Ну как-то так. Надеюсь направление понятно будет. | |
|
| |
|
|
|
|
... Ну как-то так. Надеюсь направление понятно будет.
|
То Гоблин,
вот спасибо ... буду пробовать ... вернее применять | |
|
| |
|
|
|
| Удачи. Если что получится, то дай знать | |
|
| |
|
|
|
| в заработает без открытия в режиме конструктора и последующего сохранения? | |
|
| |
|
|
|
| вот, вот
форму открыть сначала в режиме конструктора и невидимости, внести изменения, сохраниться, закрыть
а уж потом открывать в нормальном режиме | |
|
| |
|
|
|
|
ник: snipe
вот, вот
форму открыть сначала в режиме конструктора и невидимости, внести изменения, сохраниться, закрыть
а уж потом открывать в нормальном режиме
|
нафига ... если вешать га загрузку формы то никакой загузки черессс конси\труктор не нать | |
|
| |
|
|
|
| заработает без открытия в режиме конструктора и последующего сохранения?
На счет свойств форм не знаю. Но у меня есть мелкая прога по заполнению больничных, так там пользователь положение ячеек менять может. Сдвигать во все стороны, расширять, сужать и даже наклонять строки. Все изменения вносятся в таблицу настройка запросом на обновление. потом при открытии этой формы запускается рекордсет и все ячейки принимают те положения, которые были после последней настройки. Там что угодно в форме можно менять и будет запоминать. Так же и в свойствах форм думаю можно сделать при открытии. Только механизм нужно продумать лучше. | |
|
| |
|
|
|
| да при открытии - будет принимать вид - а народ хочет СКОПОМ и всем формам присвоить это значение, т.е. без таблиц, функций открытия и проч. | |
|
| |
|
|
|
| Не представляю зачем такое надо и в каких случаях и для чего. | |
|
| |
|
|
|
|
ник: kot_k_k
в заработает без открытия в режиме конструктора и последующего сохранения?
| работает ...... проверено .... | |
|
| |
|
|
|
| Работает... проверено...
А что и как работает покажи. Интересно ведь. | |
|
| |
|
87 Кб. |
|
| Я похожее реализовал. (Для скрытия некоторых данных при определенных обстоятельствах)
Есть форма в ней
список всех форм
список - в него переносятся контролы, которые надо закрыть (сохраняется в таблицу).
зависимый от первого список контролов
флажок UPD OFF/ON
см.вложение
В каждой форме код
REM UPD ****
Dim itops%, r As Variant
r = TopSecret(Me.Name)
For itops = 0 To UBound(r) - 1
On Error Resume Next
Me.Controls(r(itops)).Visible = False
Next
REM *******
|
Функция TopSecret - возвращает массив спрятанных контролов для данной формы | |
|
| |