Страница: 1 |
|
Вопрос: Не могу задать пароль на базу db1.mdb
|
Добавлено: 29.12.05 15:45
|
|
Автор вопроса: klen
|
1. Не могу задать пароль на обыкновенную базу db1.mdb
Ругается что нет базы system.mdw или она открыта монопольно другим юзером.
2. Не могу подключиться к базе, у которой уже была пароль.
Ругается Method ~ object ~ Failed
На форуме мне посоветовали переставить MDAC. Я установил MDAC 2.7
Затем предложили переписать system.mdw с другово компа, а куда переписать не знаю. На компе с проблемами, нет этих каталогов.
Случилось это всё, тогда когда, переставили систему офис. На компьютере система Windows XP и Officce XP. Пока ничего не изменилось.
Пожалуйста подскажите.
Я переписал system.mdw всюду куда только можно. Всё равно парольне задаётся и обращение к базе не происходит. Ругается по прежнему.
Ответить
|
Номер ответа: 2 Автор ответа: FoxMalder133
ICQ: 305919394
Вопросов: 8 Ответов: 17
|
Профиль | | #2
|
Добавлено: 04.01.06 18:50
|
Как открыть защищенную паролем базу данных DAO
19 октября 1999 г.
Обратите внимание! Эта статья касается простой защиты базы данных с помощью пароля. Работа с базами данных, защищенных на уровне пользователя (с использованием системной базы данных *.mdw) несколько отличается.
При непосредственной работе с DAO в VBScript или VB/VBA часто возникает необходимость открыть базу данных, защищенную паролем. В документации по DAO этот вопрос обсуждается достаточно скудно. Исправим эту досадную промашку.
База данных DAO открывается с помощью метода OpenDatabase объекта DBEngine.
Set db = dbe.OpenDatabase(name,[params],[readOnly],[connect])
Метод имеет четыре аргумента: имя БД (name), параметры (params), толькоЧтение (readOnly), и строка подключения (connect). Последние три аргумента НЕ являются обязательными. Это означает, что их можно пропустить. Пароль базы данных задается в строке подключения в виде ";pwd=password" .Обратите внимание, что точка с запятой в начале строки обязательна.
Аргумент params для баз данных DAO используется для указания монопольного доступа.
Проблема заключается в том, что если пропустить аргументы params и readOnly (указав запятые), то при открытии БД без пароля, она нормально откроется. Однако, если на базу данных установлен пароль, то она не откроется, даже если строка connect содержит правильный пароль. Будет выдана ошибка "Not a valid password". Для того, чтобы избавиться от этой проблемы, просто укажите значения аргументов явно. Их значения должны быть равны False, если, конечно, Вы не открываете БД в режиме "только чтение" или для монопольного доступа.
Приведем примеры. Пусть необходимо открыть базу данных c:\test.mdb на которую установлен пароль 123.
Пример на VBScript
Dim dbe ' Объект DAO.DBEngine
Dim db ' Объект DAO.Database
' Сначала создадим объект DBEngine
Set dbe = CreateObject("AO.DBEngine"
' Теперь откроем БД
Set db = dbe.OpenDatabase("c:\test.mdb",False,False,";pwd=123"
If db Is Nothing Then
MsgBox "БД не открыта!"
Else
MsgBox "БД открыта успешно!"
End If
Пример на VB/VBA
' ! Для кода VB/VBA не забудьте подключить DAO к проекту !
Dim db As DAO.Database ' объект DAO.Database
' Объект DBEngine доступен всегда
' Откроем БД
Set db = DBEngine.OpenDatabase("c:\test.mdb",False,False,";pwd=123"
If db Is Nothing Then
MsgBox "БД не открыта!"
Else
MsgBox "БД открыта успешно!"
End If
[]В начало
© 1999 Impact Group Ltd. Все права защищены.
Ответить
|
Страница: 1 |
Поиск по форуму