Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вопрос по меню
 
 автор: diezvip   (18.01.2007 в 14:39)   личное сообщение
 
 

Подскажите, плиз, как можно ограничить доступ некоторым пользователям (при работе в группах) к некоторым пунктам меню (меню собственное, привязанное к форме, пункты которые хочется забанить запускают макросы)

  Ответить  
 
 автор: osmor   (18.01.2007 в 14:52)   личное сообщение
 
 

http://hiprog.com/index.php?option=com_content&task=view&id=722

  Ответить  
 
 автор: Romiras   (18.01.2007 в 14:58)   личное сообщение
 
 

http://hiprog.com/index.php?option=com_content&task=view&id=182
или
http://www.vedu.ru/programming/Abr_soft/secfaq.htm

затем
http://hiprog.com/index.php?option=com_content&task=view&id=60
и
http://hiprog.com/index.php?option=com_content&task=view&id=61

если скомбинировать должно хорошо получиться

  Ответить  
 
 автор: diezvip   (19.01.2007 в 11:10)   личное сообщение
 
 

Мне как раз подходит пример описанный в
http://hiprog.com/index.php?option=com_content&task=view&id=61
Но вот незадача, при выполнении функция ругается в строке
Dim MyMenu As CommandBar
Насколько понял она непонимает что такое CommandBar
хотя библиотека Microsoft Office 11.0 Object Library в References подключена (Access 2003)
Думаю на CommandBarControl тоже ругаться будет.
Как победить эту проблемку????

  Ответить  
 
 автор: Romiras   (19.01.2007 в 11:24)   личное сообщение
 
 

у меня стоит тот-же референс но на 2000 офисе - все работает

сама функция вынесенна в сборный модуль, где хранится всем мое барахло
вызов идет из формы к меню которй нужно обратиться

например: Call SetMenuUserSecurity(3, 0, 0, False, True, "Work_Staff")

  Ответить  
 
 автор: diezvip   (19.01.2007 в 12:13)   личное сообщение
28 Кб.
 
 

Вот так всегда
У всех работает, а у меня нет
У меня все также, но . . .
см. аттач
Ладно. буду дальше голову ломать, может что с самой базой, нужно на новой попробовать
И спасибо за помощь

  Ответить  
 
 автор: Romiras   (19.01.2007 в 14:47)   личное сообщение
6 Кб.
 
 

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

  Ответить  
 
 автор: Bellerofont   (19.01.2007 в 16:49)   личное сообщение
 
 

Если установлена ссылка, то такой ошибки быть не должно. Приведите снимок окна References. Может есть битые ссылки?

  Ответить  
 
 автор: diezvip   (19.01.2007 в 16:58)   личное сообщение
40 Кб.
 
 

Когда убрал у переменных их тип все заработало
теперь пытаюсь реализовать следующий код из примера

Public Function UserMenuControl()
'устанавливает пользовательский профиль меню, если он есть (или его часть)
On Error GoTo Err_UserMenuControl
Dim MySet As Recordset
Set MySet = InfoDB.OpenRecordset("Select UserRight.EmployerID,UserRight.Right,ID1,ID2,ID3 From (UserRight inner Join UserMenuItems on UserRight.IDMenuItem=UserMenuItems.IDMenuItem) Where EmployerID=" & Str$(GlUserID)) 'GlUserID - код пользователя, соответствует EmployerID из таблицы UserRight
If Not MySet.EOF Then
MySet.MoveFirst
While Not MySet.EOF
Call SetMenuUserSecurity(MySet!ID1, MySet!ID2, MySet!ID3, MySet!Right, False)
MySet.MoveNext
Wend
End If
Exit_UserMenuControl:
Exit Function
Err_UserMenuControl:
MsgBox Err.Description
Resume Exit_UserMenuControl
End Function


но эта зараза ругается на Set MySet = (Object required)

  Ответить  
 
 автор: Romiras   (19.01.2007 в 17:18)   личное сообщение
5 Кб.
 
 

Тебе из все кода нужно Call SetMenuUserSecurity(MySet!ID1, MySet!ID2, MySet!ID3, MySet!Right, False)
а как ты реализуешь подстановку параметров функции уже твоя проблема)))

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

нашол блин


Private Sub Form_Load()
....
Call FormMenu(Me.Name)



Sub FormMenu(frmName As String)
Dim db As DAO.Database
Dim rst As DAO.Recordset

Set db = CurrentDb
Set rst = db.OpenRecordset("Select * from qwrMenuID Where FrmName = '" & frmName & "'")

With rst
        .MoveFirst
        While Not .EOF
        Call SetMenuUserSecurity(rst!ID1, rst!ID2, rst!ID3, rst!status1, rst!Status2)
        .MoveNext
        Wend

End With
rst.Close
End Sub


не помню почему уже но отказался от реализации таким способом разрешений
думаю закумарило меня за каждой формой следить

вид запроса в атаче

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList