Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2009, 22:18   #1
Yusya
 
Регистрация: 04.03.2009
Сообщений: 9
Восклицание Приложение в Access2007

Подскажите, плиз, как сделать недоступными/невидимыми все панели Access после входа под одним из пользователей? чтоб ему невозможно было что-то изменить, а были доступны только существующие формы и отчёты(которые он тоже не мог открывать в конструкторе)

и вообще возможно ли это?
Yusua
Yusya вне форума Ответить с цитированием
Старый 24.12.2009, 04:56   #2
arseniakiska
Новичок
Джуниор
 
Аватар для arseniakiska
 
Регистрация: 24.12.2009
Сообщений: 1
По умолчанию

Что то не понятна задача и вообще проблема в чём, просто другого пользователя и ограничите возможность к использованию...
arseniakiska вне форума Ответить с цитированием
Старый 24.12.2009, 10:25   #3
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Yusya.
я не могу сейчас подсказать Вам как это решается в А2007, нет установленного приложения, но как это реализовать в А2003 "поделюсь".
1. меню Сервис / Параметры запуска...:
Полный набор меню... - не позволит выполнение недопустимых действий
Контекстные меню... - не позволит переключаться в режим конструктора
2. событию формы "Закрыть" поручите выход из приложения:
Код:
Private Sub Form_Close()
    DoCmd.Quit
End Sub
пункт первый выполняется в соответствии с интерфейсом А2007 (не подскажу как), а код со второго пункта Вы можете просто разместить в коде своей формы.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 24.12.2009, 11:47   #4
Yusya
 
Регистрация: 04.03.2009
Сообщений: 9
По умолчанию

Здравствуйте Teslenko_EA!

Сейчас попробую это реализовать. но непонятно, зачем вешать выход из приложения на закрытие формы?

мне нужно чтоб одному из пользователей было доступно всё, в этом случае нет ограничений, а вот другому можно только добавлять записи, редактировать их, делать выборки и вызывать хранимые процедуры. дак вот когда вход производиться под вторым пользователем, нужно все панели аксеса убрать или заблокировать, и доступ к конструктору и всем объектам прикрыть.
это курсовой проект и я только учусь, так что не судите строго
Yusua
Yusya вне форума Ответить с цитированием
Старый 25.12.2009, 16:12   #5
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Yusya.
Для управления разрешениями (привилегиями) в БД MS Access существует защита на уровне "Файла рабочей группы" (.mdw). Задачи подобные Вашей легко решаются с его применением. Создав файл и подключив его к БД, создают пользователей назначают им "разрешения" и устанавливают пароли доступа. Всё остальное выполняет MS Access самостоятельно, с учетом привилегий.
Если Вы учитесь и действительно хотите знать, это похвально.
Евгений.
P.S. посты я подписываю своим именем для того, что бы ко мне обращались не по НИКу.
Teslenko_EA вне форума Ответить с цитированием
Старый 25.12.2009, 17:43   #6
Yusya
 
Регистрация: 04.03.2009
Сообщений: 9
По умолчанию

Евгений, а как создать этот (.mdw) файл и как его подключить к БД? У меня пользователи созданы уже на сервере. Заново прописывать их права?
Yusua
Yusya вне форума Ответить с цитированием
Старый 25.12.2009, 19:51   #7
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Yusya, возможно мы говорим о разных вещах, " пользователи...на сервере" и пользователи БД, это не одно и тоже.
О защите файлом mdw можно прочесть в разделе справки - Защита на уровне пользователей (MDB)
о других способах защиты, например здесь.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 25.12.2009, 21:29   #8
Yusya
 
Регистрация: 04.03.2009
Сообщений: 9
По умолчанию

Спасибо Евгений!
Уже пытаюсь реализовать.
Yusua
Yusya вне форума Ответить с цитированием
Старый 27.12.2009, 12:26   #9
Yusya
 
Регистрация: 04.03.2009
Сообщений: 9
По умолчанию

Спасибо большое за помощь.
Я хочу прояснить ситуацию: у меня есть база на SQL Servere 2005, в ней хранится вся база, а в Access2007 у меня только приложение. Пользователи созданы на сервере, и вход в приложение осуществляется под этими пользователями. Необходимо отключить для одного из пользователей доступ к панели Access и доступ к конструктору.

Я так полагаю, что это возможно осуществить на уровне VBA, определив под кем мы зашли в данный момент и заблокировав ему доступ к объектам. Поправьте, если я ошибаюсь.
Но как это реализовать на уровне VBA? как достучаться оттуда до панелей Access и др.? может есть методы?
Yusua
Yusya вне форума Ответить с цитированием
Старый 27.12.2009, 15:41   #10
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте Yusya.
с SQL сервером всё гораздо проще, Permission (разрешения) задаются безопасностью сервера, применяя для доступа к БД интерфейсную часть созданную не в MDB а в ADP файле, ко всем таблицам, функциям, представлениям,... будут применяться разрешения заданные на севере.
О том как ограничить доступ пользователей к интерфейсной части я уже писал (пост #3), команда закрытия приложения DoCmd.Quit при закрытии "главной" формы, отключение "контекстного меню по умолчанию" и "Полного набора меню", лишает пользователя возможности каким либо образом открывать объекты в режиме конструктора.
Так же можно программно включить "защиту от Shift'а", т.е удержание нажатой клавиши Shift, не приведет к отмене "Параметров запуска" как это происходит в MS Access по умолчанию.

Конечно "рулить" разрешениями "на уровне VBA" можно, но зачем создавать собственный "инструмент", отказываясь от имеющихся возможностей.

Евгений.
Teslenko_EA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача:в вижуал с++ Разработать приложение-сервер и приложение (смотри дальше сообщение) Мила777 Фриланс 2 21.10.2009 11:05
Неизвестное приложение grablin Операционные системы общие вопросы 3 11.10.2009 14:17
совместимость Access2007 и дельфи? www-zek Microsoft Office Access 0 30.04.2009 14:25
консольное приложение user_jasser Общие вопросы Delphi 3 17.10.2008 12:17