Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Открытие БД с паролем, Как открыть защищенную БД Access 
:(
    Опции темы
Flotskiy
Дата 10.4.2005, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: 1
Всего: 2



Добрый вечер всем.
Помогите , pse, в решении вопроса:
Имеется БД Access "ARM.mdb".
В проге есть модуль "Globals" с таким кодом:
Код

Public Declare Function SendMessageByString& Lib "user32" _
    Alias "SendMessageA" (ByVal hwnd As Long, _
    ByVal wMsg As Long, ByVal wParam As Long, _
    ByVal lParam As String)

Public Const LB_SELECTSTRING = &H18C
Public gFindString As String
Public Const gDataBaseName = "C:\ARM\ARM.mdb"
Public Const gDataBaseName2 = "C:\ARM\Auxiliary.mdb"

В формах соединение с БД создается так:
Код

Private Sub Form_Load()
 
  Data1.DatabaseName = gDataBaseName
 Data1.RecordSource = "Glavnaja"

 Set publishersClass = New dataClass

With publishersClass
Set .FormName = Me    
Set .dataCtl = Data1  
Set .ProgressBar = ProgressBar1
   .dbName = gDataBaseName
   .Buttons = "cmdButton"
   .RecordSource = "SELECT * FROM Glavnaja " 
   .LabelToUpdate = lblRecordCount
   .FindCaption = "Select a Publisher"
   .FindRecordSource = "SELECT Family FROM Glavnaja ORDER BY Family"
   .FindMatchField = "Family"
   .Tag = "1"   
   .ProcessCMD 0     
End With


Для навигации по БД в проге есть модуль класса, который используется всеми формами (7 форм)
И еще соединение такое:
Код

Set adoConnection = New ADODB.Connection
Set adoRecordset = New ADODB.Recordset

connectString = "Provider=Microsoft.Jet.OLEDB.3.51;" _
                 & "Data Source=" & gDataBaseName

Работает все. Решил поставить пароль на БД, прочитал топик Amt, где Cardinal дает код и стал экспериментировать
Заменил в модуле
Код

Public Const gDataBaseName = "C:\ARM\ARM.mdb"
на
Public Const gDataBaseName = " True, False, C:\ARM\ARM.mdb; PWD=123"

и еще по всякому пробовал, но выдает ошибку:"Неправильное файловое имя",
Как решить эту проблему? Настало время запаролить БД.
С уважением

Это сообщение отредактировал(а) Flotskiy - 10.4.2005, 15:34
--------------------
FlotskiySk k
PM MAIL   Вверх
amt
Дата 11.4.2005, 07:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 26.10.2004
Где: г. Волгоград

Репутация: 3
Всего: 3



Flotskiy, по этому коду(взял у [b]Naghual) я создаю базу (с паролем)
Код

Dim newDB As dao.Database
   Dim newTD As dao.TableDef
   Dim newFD As dao.Field
   Dim NewID As dao.Index

On Error GoTo CreateDatabase_Error
  
   Set newDB = dao.Workspaces(0).CreateDatabase("C:\temp.mdb", dbLangGeneral & ";pwd=1", dbVersion30 + dbEncrypt)
   
   Set newTD = newDB.CreateTableDef("Dictionaries")
   Set newFD = newTD.CreateField("ID", dbLong)
   newFD.Required = True
   newTD.Fields.Append newFD
   Set newFD = newTD.CreateField("NAME", dbText, 64)
   newFD.AllowZeroLength = False
   newFD.Required = True
   newTD.Fields.Append newFD
   Set newFD = newTD.CreateField("TESTTIME", dbInteger)
   newFD.Required = True
   newTD.Fields.Append newFD
   
   Set NewID = newTD.CreateIndex("Dictionary_ID")
   NewID.Fields = "+ID"
   NewID.Primary = True
   NewID.Required = True
   NewID.Unique = True
   newTD.Indexes.Append NewID
   Set NewID = newTD.CreateIndex("Dictionary_NAME")
   NewID.Fields = "+NAME"
   NewID.Required = True
   NewID.Unique = True
   newTD.Indexes.Append NewID
   newDB.TableDefs.Append newTD
   newDB.TableDefs.Refresh
  
   newDB.Close
   

CreateDatabase_OK:
   Exit Function
   
CreateDatabase_Error:
   If dao.Errors.Count > 0 Then
       MsgBox dao.Errors(0).Number & ":" & dao.Errors(0).Description, vbCritical + vbOKOnly + vbApplicationModal, App.Title
   Else
       MsgBox Err.Number & ":" & Err.Description, vbCritical + vbOKOnly + vbApplicationModal, App.Title
   End If
   Resume CreateDatabase_OK


А этим кодом открываю (взял у cardinal)
Код

Dim strConnect As String
Dim pwd As String
pwd = "1"
strConnect = ";database=" & App.Path & "\db23.mdb" & ";PWD=" & pwd & ""  'data access with password"
Set mdb = OpenDatabase("", True, False, strConnect)

У меня все классно работает

Это сообщение отредактировал(а) amt - 11.4.2005, 07:23
--------------------
С точки зрения банальной эрудиции не каждый индивидуум способен игнорировать тенденции парадоксальных эмоций.
PM MAIL   Вверх
Flotskiy
Дата 11.4.2005, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: 1
Всего: 2



Добрый день всем!
amt, у меня уже готовая БД, пароль поставил с Access'а. Мне надо изменить строку в модуле:
Код

Public Const gDataBaseName = "C:\ARM\ARM.mdb"
на что-то типа:
Public Const gDataBaseName = " True, False, C:\ARM\ARM.mdb; PWD=123"



Через эту константу соединяются все формы и SQL-запросы, так что название ее изменять нельзя. Вот такой вопрос.
С уважением

--------------------
FlotskiySk k
PM MAIL   Вверх
Exception
Дата 12.4.2005, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Я бы тебе не советовал в одном проекте юзать ADO и DAO. Ничем хорошим это не кончится. Кстати,
Код

Public Const gDataBaseName = " True, False, C:\ARM\ARM.mdb; PWD=123"

и
Код

connectString = "Provider=Microsoft.Jet.OLEDB.3.51;" _
                 & "Data Source=" & gDataBaseName

знаешь что дают?
Код

connectString = "Provider=Microsoft.Jet.OLEDB.3.51;" _
                 & "Data Source= True, False, C:\ARM\ARM.mdb; PWD=123"

Data Source - имя файла. И какое оно у тебя? " True, False, C:\ARM\ARM.mdb" Конечно, ошибка. Надо просто "C:\ARM\ARM.mdb", а True и False вообще не знаю зачем. Если хошь такую строчку составить, бери ADO Data Control -> Custom и там Build Connection String. Там есть визард, который облегчит создание ConnectionString.
PM   Вверх
Flotskiy
Дата 13.4.2005, 05:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: 1
Всего: 2



Всем доброе утро!

Run-time error, у меня работает вот такой код:
Код

Public Const gDataBaseName = "C:\ARM\ARM.mdb"
connectString = "Provider=Microsoft.Jet.OLEDB.3.51;" _
                 & "Data Source=" & gDataBaseName

а остальное-это эксперимент и конечно-не работает, выше написано.
Мне надо в первую строку добавить открытие с паролем.
Ты предлагаешь
Цитата

бери ADO Data Control

нельзя, это надо всю систему переделывать
Цитата
Я бы тебе не советовал в одном проекте юзать ADO и DAO. Ничем хорошим это не кончится.

На форме стоит объект DAO для работы с БД, а ADO используется только в запросах.
Я подсоединил код одной формы, если интересно, просмотрите
С уважением


Это сообщение отредактировал(а) Flotskiy - 13.4.2005, 05:57

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  CodExport.rar
--------------------
FlotskiySk k
PM MAIL   Вверх
Exception
Дата 14.4.2005, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 7
Всего: 186



Черт возьми... такой длинный код.
И все равно не пойму, зачем тебе ADO. Запросы ведь можно и через ДАО делать (если ты про sql)
PM   Вверх
Flotskiy
Дата 15.4.2005, 05:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: 1
Всего: 2



Доброе утро всем!

Run-time error, этим кодов формируется около двух десятков документов с пересылкой в Excel, а начальный код я взял из книги "Введение в программирование баз данных" автора Дж. Коннелла, и все разработки ведутся его методом. Есть его примеры на сайте "WWW.dmk.ru", если интересно посмотреть.
Мне только бы в модуле "Globals" открыть БД с паролем, и прописать путь к БД, чтобы работала строка:
Код

Public gFindString As String

С уважением

Это сообщение отредактировал(а) Flotskiy - 15.4.2005, 05:46
--------------------
FlotskiySk k
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0469 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.