Страница 1 из 1
Программная рабочая группа в Access
Добавлено: 16 май 2011, 10:01
kuznetsovSergey
Доброе утро, всем !
Обращаюсь к Вам, за помощью, возможно кто то знаком с подобном проблемой, или же знает решение данной проблемы. Для настройки права доступа к базе Access, была создана рабочая группа, с прописыванные каждому пользователю различные права доступ. Файл лежит за сетевом диске, и дан доступ к папке определенным людям.
При запуске самой базы, у всех возникает ошибка ограничения права доступа, это связано с тем, что у всех по умолчанию подгружается их системная рабочая группа на их жестком диске.
Нашел как это исправить, проверил и это работает: нужно создать ярлык на данную базу, который запускает объект последовательно: Запускает Access, потом базу, потом рабочую группу лежащую по определеному пути.
Выглядит это так:
"C:\Program Files\Microsoft Office 2003\OFFICE11\MSACCESS.EXE" "\\сетевая папка\база Access.mdb"/WRKGRP [url=file://\\сетевая папка\рабочая группа.mdw]\\сетевая папка\рабочая группа.mdw[/url]
Но проблема появилась новая - у каждого пользователя, Access установлен в разных местах, и ярлык работает далеко не у всех.
Подскажите пожалуйста, как можно сделать универсальный запуск Access, через ярлык.
Потому что, ведь если в консольной строке, написать : Access.exe, аксес же запускается.
Возможно есть путь решения, через написания .bat файла, или .exe файла ...
Помогите пожалуйста =)
Re: Программная рабочая группа в Access
Добавлено: 16 май 2011, 11:19
Naeel Maqsudov
Придётся вычислить все возможные варианты и написать bat-файл, который все будут запускать ярлыком с сетевого диска.
файле что-то типа:
if exists "%ProgramFiles%\Microsoft Office\Office11\msaccess.exe" "%ProgramFiles%\Microsoft Office\Office11\msaccess.exe" и т.д....
if exists "%ProgramFiles%\Microsoft Office 2003\Office11\msaccess.exe" "%ProgramFiles%\Microsoft Office\Office11\msaccess.exe" и т.д....
if exists "%ProgramFiles(x86)%\Microsoft Office\Office11\msaccess.exe" "%ProgramFiles%\Microsoft Office\Office11\msaccess.exe" и т.д....
if exists "%ProgramFiles(x86)%\Microsoft Office 2003\Office11\msaccess.exe" "%ProgramFiles%\Microsoft Office\Office11\msaccess.exe" и т.д....
и т.д.
Подробнее смотрите
if /?
Re: Программная рабочая группа в Access
Добавлено: 16 май 2011, 14:12
kuznetsovSergey
Naeel Maqsudov писал(а):Придётся вычислить все возможные варианты и написать bat-файл, который все будут запускать ярлыком с сетевого диска.
файле что-то типа:
if exists "%ProgramFiles%\Microsoft Office\Office11\msaccess.exe" "%ProgramFiles%\Microsoft Office\Office11\msaccess.exe" и т.д....
if exists "%ProgramFiles%\Microsoft Office 2003\Office11\msaccess.exe" "%ProgramFiles%\Microsoft Office\Office11\msaccess.exe" и т.д....
if exists "%ProgramFiles(x86)%\Microsoft Office\Office11\msaccess.exe" "%ProgramFiles%\Microsoft Office\Office11\msaccess.exe" и т.д....
if exists "%ProgramFiles(x86)%\Microsoft Office 2003\Office11\msaccess.exe" "%ProgramFiles%\Microsoft Office\Office11\msaccess.exe" и т.д....
и т.д.
Подробнее смотрите
if /?
Спасибо , но если честно у меня даже со вставкой известного пути, мало что получилось ... И к моему большому сожалению, я не знаю как запускать через .bat рабочие группы аксеса..
Re: Программная рабочая группа в Access
Добавлено: 16 май 2011, 16:18
kuznetsovSergey
можете привести один живой рабочий пример?
Re: Программная рабочая группа в Access
Добавлено: 17 май 2011, 12:32
Naeel Maqsudov
У Вас есть свой рабочий пример!
Возьмите вашу же командную строку
"C:\Program Files\Microsoft Office 2003\OFFICE11\MSACCESS.EXE" "\\сетевая папка\база Access.mdb"/WRKGRP \\сетевая папка\рабочая группа.mdw
Запишите её в текстовый файл, и назовите его, скажем, start.bat
Рабочий пример готов.

Теперь в начало этой строки добавьте команду IF, а точнее IF EXISTS
Как пользоваться командой IF можно почитать (лучше прочитайте сами

не просите меня пересказывать), если в окне CMD набрать:
IF /?
Потом копируйте эту строку, правя пути для каждого возможного варианта.
Вместо куска "C:\Program Files" используйте переменную %ProgramFiles%, а также %ProgramFiles(x86)%, чтобы работало и на 64-х разрядной операционке.
Re: Программная рабочая группа в Access
Добавлено: 17 май 2011, 13:25
kuznetsovSergey
Naeel Maqsudov писал(а):У Вас есть свой рабочий пример!
Возьмите вашу же командную строку
Запишите её в текстовый файл, и назовите его, скажем, start.bat
Рабочий пример готов.

Теперь в начало этой строки добавьте команду IF, а точнее IF EXISTS
Как пользоваться командой IF можно почитать (лучше прочитайте сами

не просите меня пересказывать), если в окне CMD набрать:
IF /?
Потом копируйте эту строку, правя пути для каждого возможного варианта.
Вместо куска "C:\Program Files" используйте переменную %ProgramFiles%, а также %ProgramFiles(x86)%, чтобы работало и на 64-х разрядной операционке.
Огромное спасибо, приятно чувствовать поддержку! Но пришёл к другому пути, и он более универсальный. Если интересен путь решения конечно же, прилагаю код ...
Я создал VBS файл, с внутренним кодом
Set wshShell = WScript.CreateObject ("WSCript.shell")
str = "MSAccess.exe " & """[url=file://сетевая%20папка/база%20данных.mdb]\\сетевая папка\база данных.mdb[/url]"" /WRKGRP ""[url=file://сетевая%20папка/база%20данных.mdb]\\сетевая папка\[/url][url=file://fslmk/ОЗиЗ/GSfPP/Security.mdw]Security.mdw[/url]"""
wshshell.run str, 1, True
set wshshell = nothing
При запуске данного файл. Access загружается автоматически, не прося указывать путь его хранения. Проверил, у всех работает, подтягивается рабочая группа.