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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Как из БД Access программно вытащить путь до установленной рабочей группы?
 
 автор: akkorn   (17.05.2010 в 22:49)   личное сообщение
 
 

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

Подскажите, люди добрыя)

  Ответить  
 
 автор: Анатолий (Киев)   (18.05.2010 в 18:16)   личное сообщение
 
 

"путь до установленной рабочей группы" имеется ввиду путь к используемому MDW файлу?
Тогда DBEngine.SystemDB

  Ответить  
 
 автор: akkorn   (18.05.2010 в 20:25)   личное сообщение
 
 

to Анатолий (Киев)
Не совсем... Отвечает только именем файла (дословно: "system.mdb")

А нужен полный путь...

  Ответить  
 
 автор: Анатолий (Киев)   (19.05.2010 в 17:57)   личное сообщение
 
 

У меня в окне отладки:
?DBEngine.SystemDB
C:\Documents and Settings\arm801\Application Data\Microsoft\Access\System.mdw

Почему у вас только имя файла, да еще и system.mdb - не знаю.
Какой у вас Акс и Винда?

Добавлю еще вариант:
?CurrentProject.Connection.ConnectionString
Provider=Microsoft.Jet.OLEDB.4.0;...;Jet OLEDB:System database=C:\Documents and Settings\arm801\Application Data\Microsoft\Access\System.mdw;...

  Ответить  
 
 автор: akkorn   (19.05.2010 в 19:32)   личное сообщение
 
 

to Анатолий (Киев)
Я подключаюсь из Visual Basic, упустил, сорри))
И действительно пишет вместо System.mdb вместо *.mdw
При чем нга результат не влияет даже то, что если указать как рабочую группу "c:\asdf.mdw"

Эххх, как же из этого подключения вытащить системную рабочую группу, установленную как по-умолчанию? Людиии помАжитееее.. Все перерыл...

Подключение так
Dim DbE As DBEngine, Dbs As Database
Set DbE = New DBEngine
Set Dbs = DbE.OpenDatabase("C:\asd.mdb", False, False, ";pwd=asd")
....

  Ответить  
 
 автор: osmor   (20.05.2010 в 08:25)   личное сообщение
 
 

дефолтовую можно через реестр
HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Access\Jet\4.0\Engines\SystemDB

  Ответить  
 
 автор: akkorn   (21.05.2010 в 01:32)   личное сообщение
 
 

to osmor
Да, я взял этот вариант как единственно-возможный. Сейчас разрабатываю эту веточку)
Косяк в том, что офисов у пользователя может быть несколько, соответственно данных может быть несколько. Еще в реестре данные могут оставаться от предыдущих офисов.. И еще куча вариантов.. Приходится вначале узнавать из реестра путь к msAccess.exe. Проверять его наличие. Далее узнавать месторасположение файла рабочих групп. Проверять его наличие. И только если все три пункта true, то удачно... НО! А если два-три разных Access установлено у перца?)) И он умудрился указать для каждого свой файл рабочих групп. Ахахх)
К тому же же версий офиса куча, далее, версии 2007 и 2010 живут уже по другим адресам в реестре)))
Но я вроде уже докопался до правды)))) Хотя... )))

Спасибо Вам)

  Ответить  
 
 автор: Анатолий (Киев)   (21.05.2010 в 11:46)   личное сообщение
 
 

Объясните, зачем вам это нужно. Файл System.mdw всегда содержит определенный набор пользователей и групп с определенными правами. Редактировать его нет смысла. Можно использовать любой, какой найдете.
Если хотите установить защиту - создайте свой MDW, положите в ту же папку, где ваш проект и указывайте путь в св-ве SystemDB.

  Ответить  
 
 автор: akkorn   (21.05.2010 в 15:23)   личное сообщение
 
 

to Анатолий (Киев)
Я дорабатываю свою утилиту- AllowShift. В новой версии планирю сделать автоподхват системного файла рабочих групп, если пльзователь укажет "работать с файлом рабочих групп", и выберет "Системный по-умолчанию". Соответственно, отсюда замороки)

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