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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Доступ к запароленой базе Access, Неразрешимая проблема 
:(
    Опции темы
ArtNeoX
Дата 23.2.2006, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Как загрузить данные из базы данных Access, если база защищена паролем. (пароль известен)
На форме расположен Data и несколько TextBox

Код

' открытие не запароленой базы понятно, а как открыть запароленную?
Data1.DatabaseName = "Files/Base.mdb" 'Ищем базу в той же директории где и сама прога
' Загрузка данных из базы ACCESS в карточку
Data1.RecordSource = "Таблица1" 'Имя таблицы,для доступа к ней
Text1.DataField = "Фамилия" 'В Text1 из Поле1 будет загружаться текст
Text2.DataField = "Телефон"
End Sub

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


Эксперт
****


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

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



Ну и зафиг-то темы дублировать?
PM   Вверх
kulibin
Дата 23.2.2006, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 9.5.2005
Где: Украина, Запорожь е

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



Не знаю чего нашол ты в дао этом дурацком. На дао как не знаю. На адо нужно в строке подключения указать "Jet OLEDB:Database Password=..." (а не просто пасворд!):
Код

Set con = New ADODB.Connection
With con
    .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
    App.Path & "\db.mdb;Jet OLEDB:Database Password=2304"
    .CursorLocation = adUseClient
    .Open
End With

реально работающий код скопированый и вставленый из моей работающей программы smile
Решил написать - раз уж такая неразрешимая проблема smile.

PM MAIL WWW ICQ   Вверх
ArtNeoX
Дата 23.2.2006, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



на адо я знаю как. а вот с дао - это вопрос.
просто у меня база данных выглядит следующим образом.
данные вводятся в текстбоксах.
просмотр, выборка, сортировка осуществляется в таблице DataGrid.
Для таблицы запароленая база открывается, а вот для data нет.
Мучаюсь с этим уже давно.
Нехочется, что бы пользователь мог спокойно открыть базу в Access и наменял бы там значения строк и столбцов....
PM MAIL   Вверх
kulibin
Дата 23.2.2006, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 9.5.2005
Где: Украина, Запорожь е

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



ADODC вместо даты юзай - чем он хуже

PM MAIL WWW ICQ   Вверх
ArtNeoX
Дата 24.2.2006, 06:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



это вот этот что ли
Components -> Microsoft ADO Data Control 6.0 (OLEDB)
Добавлено @ 06:54
а где в нем
connect
DataBaseName
RecordSource

как его настроить
PM MAIL   Вверх
kulibin
Дата 24.2.2006, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 9.5.2005
Где: Украина, Запорожь е

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



матерь божья! ты, дорогуша, вообще пытался сам что-то сделать? или сразу пишеш на форум? ты сам бы подумал немного - это полезно бывает. нифига там сложного нету. с адо то ты знаком как я понял - там всё стандартно.
или просто щёлкни по нему правой клавишей и выбери "пропертис" - там всё просто.
такой момент: у тебя в гриде и в текстбоксах данные как связаны? если из одного источника - так зачем тебе его дублировать? используй один и для того и для другого.
просто в загрузке формы писай set textbox1.datasource=myrecordset или set mydatagrid.datasource=adodc1.recordset
в adodc нет датабейзнейм - там connectionstring - строка подключения как у adodb.connection
и прекращай форум то спамить - сам сначала подумай, книжки/справку полистай, может пример найди в нете(их дофига и больше - очень полезно посмотреть как другие люди пишут. загляни на http://www.planet-source-code.com - там готовых таких приложений немеряно или вообще учебных примеров) - ну а если трабл уже какой - тогда спрашивай на форуме.

Это сообщение отредактировал(а) kulibin - 24.2.2006, 12:19
PM MAIL WWW ICQ   Вверх
ArtNeoX
Дата 24.2.2006, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



для формы с DATA

Код

Public mdb As dao.Database 'Открытие запароленой базы


Код

Private Sub Form_Load() 'При запуске формы:

' Открытие запароленой базы
Dim pwd As String
Dim strConnect As String
Data1.DatabaseName = "Files/Base_2006.dll"
pwd = "777"
strConnect = ";database=" & App.Path & "\Files\Base_2006.dll" & ";PWD=" & pwd & ""
Set mdb = OpenDatabase("", True, False, strConnect)

' Загрузка данных из базы ACCESS в карточку
Data1.RecordSource = "Таблица1" 'Имя таблицы,для доступа к ней
Text1.DataField = "X01" 'В Text1 из Поле1 будет загружаться текст
Text2.DataField = "X02"
Text3.DataField = "X03"
End Sub



ДЛЯ ФОРМЫ С DataGrid

Код

Private Sub Form_Load()

 Dim db As Connection
  Set db = New Connection
  db.CursorLocation = adUseClient
  
' Открытие запароленной базы
 db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=Files\Base_2006.dll;Jet OLEDB:Database Password=777"

  Set adoPrimaryRS = New Recordset
  adoPrimaryRS.Open "select X01,X02,X03 from Таблица1", db, adOpenStatic, adLockOptimistic
  Set grdDataGrid.DataSource = adoPrimaryRS
  Set adoRecordset = adoPrimaryRS
  mbDataChanged = False
End Sub


Если открываю форму с DATA а затем с DataGrid то пишет ошибку Run-time error '-2147467259 (80004005)': Couldn't use";file alredy in use.

Типа файл уже используется. Если открывать не запароленный файл то все нормально. А сдесь то что не так.



PM MAIL   Вверх
Exception
Дата 24.2.2006, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Да зачем тебе DAO?!
Используй ADO, тебе ведь все уже разжевали...
PM   Вверх
ArtNeoX
Дата 24.2.2006, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



что ж мне переделывать все что ли?
PM MAIL   Вверх
Тутанхамец
Дата 27.2.2006, 07:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

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



На DAO:


Код


On Error Resume Next
strPass="der parol"
Dc.DatabaseName = strPath
Dc.Connect = "; pwd=" + strPass
Dc.RecordSource = "Table1"
Dc.Refresh

If Err.Number = 0 Then MsgBox("подключились!")
On error goto 0


Это кусок моей реально работающей проги. Dc - это визуальный контрол Data. С объектом Database можно делать всё то же самое, кажется.

Дружище, читай хэлпы. Там есть не всё, но очень многое.
Добавлено @ 07:55
Да, и на всякий случай - в strPath находится путь к файлу mdb. Не перепутай.
Добавлено @ 08:00
А если идут траблы с типа file already in use, то установи свойства объекта, которые отвечают за совместное чтение и запись. Для визуального контрола Data - это свойства exclusive и options, а для объектов, созданный кодом, я не помню, поищи сам.
Добавлено @ 08:01
И вообще - на фиг тебе для каждой формы каждый раз открывать одну и ту же базу?..
PM MAIL   Вверх
ArtNeoX
Дата 27.2.2006, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



И вообще - на фиг тебе для каждой формы каждый раз открывать одну и ту же базу?..

а как иначе?
PM MAIL   Вверх
ArtNeoX
Дата 27.2.2006, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



свойства exclusive и options какими должны быть
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

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

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

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

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


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

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


 




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


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

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