powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Меню в access XP
25 сообщений из 44, страница 1 из 2
Меню в access XP
    #32277466
Creator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как в Access XP спрятать стандартное меню "отобразить окно базы данных"?
...
Рейтинг: 0 / 0
Меню в access XP
    #32277837
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
открываешь любую форму
правая кнопка мыши на тулбаре - появляется режим настройки меню
правая кнопка на нужной иконке, удалить
...
Рейтинг: 0 / 0
Меню в access XP
    #32277972
Creator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это удалить иконку тулбара, а не стандартный пунк меню насколько я понимаю. Кроме того момент в том что надо прятать меню в зависимости от имени пользователя, то есть делать это программно.
...
Рейтинг: 0 / 0
Меню в access XP
    #32278023
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правильно поставленный вопрос - содержит половину ответа.

1 >Кроме того момент в том что надо прятать меню в зависимости от имени пользователя, то есть делать это программно.

это нужно было понять телепатически?

>Это удалить иконку тулбара, а не стандартный пунк меню

да, действительно. а где находится стандартный пункт меню отобразить окно базы данных?
...
Рейтинг: 0 / 0
Меню в access XP
    #32278277
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Параметры запуска". А дальше надо думать. Но думать лень.
...
Рейтинг: 0 / 0
Меню в access XP
    #32278465
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> "Параметры запуска". А дальше надо думать. Но думать лень.

причем здесь

> стандартный пункт меню ?

если речь идет о параметре базы данных отображать окно базы при запуске или нет то :

Код: plaintext
1.
2.
3.
4.
If .... Then
CurrentProject.Properties( "StartUpShowDBWindow" ).value =  0 
Else
CurrentProject.Properties( "StartUpShowDBWindow" ).value =  1 
End If
...
Рейтинг: 0 / 0
Меню в access XP
    #32278649
Creator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я к сожалению не могу скриншот вставить сюда но если быть точным в английской версии это звучит так:

Window->Unhide...-> (здесь имя базы)

Так вот этого пункта в меню Window для пользователя User1 (к примеру) быть не должно, а если зайдёт пользователь User2 то этот пункт меню должно быть видно. Аналогично я думаю сделать с File->Open...
...
Рейтинг: 0 / 0
Меню в access XP
    #32278955
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А система разграничения прав доступа как организована?
Другими словами. как узнаешь имя пользователя?
...
Рейтинг: 0 / 0
Меню в access XP
    #32279503
Creator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так:

Dim Usr
Usr = CurrentUser

Разграничено стандартно с помощью файла рабочей группы.
...
Рейтинг: 0 / 0
Меню в access XP
    #32279521
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А не проще ли будет для всех пользователей скрыть стандартное меню и создать свое собственное, в котором есть пункт со своей функцией, которая в зависимости от прав выполняет необходимые действия.
...
Рейтинг: 0 / 0
Меню в access XP
    #32279697
Creator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще, но пользователи используют всякие другие пункты меню и они им нужны, а то прирежут :) а пару других очень хочется прикрыть. И я даже видел одну программу где всё это прикрыто.
...
Рейтинг: 0 / 0
Меню в access XP
    #32279727
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и сделай свое меню, полностью повторяющее стандартное, за исключением не нужных пунктов.
...
Рейтинг: 0 / 0
Меню в access XP
    #32279760
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
удалить в стандартном меню...
правая кнопка мыши на меню - настройка- окно- отбразить - удалить ?
...
Рейтинг: 0 / 0
Меню в access XP
    #32279768
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
записано макрорекордером эксела:

Код: plaintext
    Application.CommandBars( "Window" ).Controls( 3 ).Delete


только надо бы заменить
Controls(3) на Controls("Имя_пункта")
...
Рейтинг: 0 / 0
Меню в access XP
    #32280592
Creator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TO: АлексейК
Большое спасибо я практически так сделал только с помощью свойства visible.

Появилась ещё одна проблема любой пользователь может вернуть этот пункт меню описаным вами способом без всяких проблем и без всяких прав. Как с этим бороться?
...
Рейтинг: 0 / 0
Меню в access XP
    #32280665
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычно защищают объекты базы данных от доступа а не окно базы данных.

если человек в состоянии программно отобразить или скрыть пунк меню то ему ничего не будет стоить из другого приложения открыть твой проект и просмотреть коллекции объектов tabledefs, ..

скрытие и отбражение меню может быть использовано только для удобства а для защиты не годится
...
Рейтинг: 0 / 0
Меню в access XP
    #32281071
Creator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TO: АлексейК
Не всегда это эфективно "защищать только объекты базы данных".
Допустим у нас есть таблица и по некоторой логике пользователь должнен иметь возможность добавлять менять или удалять записи, но только те которые создал. То есть если пользователь user1 создал запись, он имеет право и удалить и изменить её, если же запись сделал другой юзер, то запретить ему это сделать. Мы естественно реализуем это с помощью формы.
Её конечно можно защитить так же как и таблицу, но этого мало если пользователь видит окно базы данных он заходит напрямую в таблицу и меняет всё что хочет. И поскольку в access нет тригеров выловить такие изменения нельзя. Я привёл пример с редактированием данных, но могут быть самые разные логики которые в других с-мах реализуют с помощью тригеров.

В моём же случае надо ещё найти как убрать контекстное меню "Cutsomize..."
из контекстного меню главного меню access и всё должно быть в полне безопасно. :P
...
Рейтинг: 0 / 0
Меню в access XP
    #32281755
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если вопрос в том, чтобы не дать именно определенному классу пользователей войти в окно объектов бд, не запрещая, по возможности, доступ ко всем меню, в т.ч. контекстным, то где то были решения, попросту проверяющие текущий активный объект (по таймеру), и свертывающие аксес при попытке активизировать окно объектов БД. По моему у Шермана.

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

ЗЫ: вот, нашел
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
Public Function rpProtect() As Boolean
Static S As String, n As Long, TypeWindow As Long

On Error Resume Next
Err.Clear

n = Screen.Application.CurrentObjectType
If Err >  0  Then Exit Function 'на всякий случай
S = Screen.Application.CurrentObjectName

'тип не определен или диалоговая форма
If n = - 1  Then Exit Function

'Тип определен
TypeWindow = n
n = SysCmd(acSysCmdGetObjectState, TypeWindow, S)
If n = 0 Then GoTo TruEnd 'объект не открыт - окно базы

Select Case TypeWindow
Case acTable, acQuery, acMacro, acModule
GoTo TruEnd 'доступ всегда запрещен
Case acForm
S = Screen.ActiveForm.Name
If Err > 0 Then GoTo TruEnd 'форма в окне базы данных
If Forms(S).CurrentView =  0  Then GoTo TruEnd 'форма в конструкторе
Case acReport
S = Screen.ActiveReport.Name
If Err > 0 Then GoTo TruEnd 'отчет в окне базы данных
n = Reports(S).HasData
If Err >  0  Then GoTo TruEnd 'отчет в конструкторе
End Select
Exit Function

TruEnd:
rpProtect = True
End Function

А в форме (открываемой по умолчанию) что-то типа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Option Compare Database
Option Explicit

Private Sub Form_GotFocus()
    If (Me.Visible = True) Then
        DoCmd.Quit acQuitSaveNone
    End If
End Sub

Private Sub Form_Open(Cancel As Integer)
    
    Me.Visible = False
    DoCmd.OpenForm  "Некая заставка" , acNormal

End Sub

Private Sub Form_Timer()
    If rpProtect() Then
        DoCmd.Quit acQuitSaveNone
    End If
End Sub
...
Рейтинг: 0 / 0
Меню в access XP
    #32282303
Creator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо попробую. По поводу извне не очень меня беспокоит - я планирую чтобы пользователи работали через терминал (Citrix). И они будут иметь возможность запускать только эту базу.
...
Рейтинг: 0 / 0
Меню в access XP
    #32282319
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Её конечно можно защитить так же как и таблицу, но этого мало если пользователь видит окно базы данных он заходит напрямую в таблицу и меняет всё что хочет. И поскольку в access нет тригеров выловить такие изменения нельзя.

Что за бред?
Запретить доступ к таблицам, дать доступ к запросам (которые уже и отсекут нужные записи). Это одно из возможных решений. И, уж извиняйте, но это основы аксесовской защиты (насколько она вообще возможна). Может, следует основы изучить прежде чем Record Level Permissions делать?

При чем тут отсутствие триггеров и окно базы данных? Как они вообще между собой могут быть связаны?

Что это за система защиты, основанная на предположении, что пользователь не догадается (или не сможет) запустить msaccess.exe и из любой (новой) базы прилинковать таблицы?
...
Рейтинг: 0 / 0
Меню в access XP
    #32282339
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По моему, есть две неабсурдные системы защиты
1) Для лохов(кроме ЛП), набором менюшек. Про что менюшки нет, того нельзя
2) Не для лохов. Использование access исключено.
...
Рейтинг: 0 / 0
Меню в access XP
    #32282351
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Именно так.
Причем строя защиту от лохов можно и не пужаться того, что где-то в меню случайно что-то вылезет. Все равно не поймут что с этим делать.
А не от лохов (если уж судьба такая, на аксесе строить) - опять таки менюшками можно озабачиваться в самую последнюю очередь.
...
Рейтинг: 0 / 0
Меню в access XP
    #32282510
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ЛП. триггера, как ясно из контекста, связаны с возможностью сохранить логичесую целостность, а то и зафиксировать сам факт и юзера, проведшего изменения. Не важно, из окна базы вы их проделали, или из любого другого окна. Но другие окна, оказывается, под присмотром. (сарказм тут не уместен).

>>Запретить доступ к таблицам, дать доступ к запросам (которые уже и отсекут нужные записи).

- И тут юзер качнет (с известного ему сайта) раскрывалку юзеров и их UID-ов и, не долго думая, создаст mdw с требуемыми параметрами - и, как ни в чем не бывало, подцепится как owner в лучшем виде :0) ко всем табличкам и понатворит там "неотслеживаемых триггерами" безобразий :0)
...
Рейтинг: 0 / 0
Меню в access XP
    #32282515
Creator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше плохая защита чем её отсутсвие давайте не рассуждать как её взломать это мы и так все знаем.

>>Запретить доступ к таблицам, дать доступ к запросам (которые уже и
отсекут нужные записи).

Это так опускает бедный комп работающий под access, что он зеленеть начинает я уже не говорю если талблицы прилинкованые.

Я же стаю перед фактом есть программа её надо прикрыть что бы не лазили вот я и решил это обсудить.
...
Рейтинг: 0 / 0
Меню в access XP
    #32282527
Юрий Р.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Статья на эту тему
http://www.hiprog.com/access/article.asp?id=361
...
Рейтинг: 0 / 0
25 сообщений из 44, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Меню в access XP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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