Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 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  

Номер ответа: 1
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #1 Добавлено: 29.12.05 21:05
задасть пас есть пример через дао:

Public Function SetDatabasePassword(DBPath As String, newPassword As String) As Boolean '+
'Защищает базу данных паролем, если она до этого не имела пароля

'Параметры: sDBPath: Полный путь к базе данных Access
'newPassword: пароль
'В случае успеха, возвращает true, иначе false

If Dir(DBPath) = "" Then Exit Function

Dim Db As DAO.Database

On Error Resume Next
Set Db = OpenDatabase(DBPath, True)
If err.Number <> 0 Then Exit Function
Db.newPassword "", newPassword
SetDatabasePassword = err.Number = 0
Db.Close

End Function


пошарся поиском где у тя лежит 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(";DAO.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 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам