DAO & MDI & Data + *.mdb

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Dummiel
Бывалый
Бывалый
 
Сообщения: 235
Зарегистрирован: 11.06.2004 (Пт) 9:15
Откуда: Алтай

DAO & MDI & Data + *.mdb

Сообщение Dummiel » 10.11.2006 (Пт) 9:10

Здравствуйте, други!

Просветите, PLEASE!

Моя программа работает с одной БД (формат ACCESS), путь к ней лежит в Public-переменной.
Работаю с DAO. К ADO чегой-то душа не лежит.Интерфейс - MDI-форма, и т.п. БД открываю в первой дочерней форме через Data, которая "лежит" на ней же. Форма открывается "автоматически" из родительской.

1. В дочерних формах с MDIChild = True vbModal не работает, жаль. Делаю MDIChild = False, тогда не могу в этой форме открыть БД, т.к. Data в другой форме. VB матерится и кричит ошибку №91 - Object variable or With block variable not set.
Пишу обычно:

sSQL = "SELECT * FROM Table"
Set dbRS = dbBD.OpenRecordset(sSQL)

А при MDIChild = True открывается без проблем. Но не работает vbModal. А мне надо vbModal. Вот такая заморочка.

2. Вытекает из первого. Если эту форму делать MDIChild = False и vbModal, тогда приходится бросать на нее дополнительный объект Data и его .DatabaseName такое же, как и .DatabaseName в первой дочерней. Или работать с public-переменной, но уже без SQL. Вот и вопрос - не помешает ли как-либо обилие в программе объектов Data, т.к. придется еще на некоторые формы бросать Data. Их получится во всей программе что-то около 6-7. "Перебивать" друг друга и "наслаиваться" друг на друга они не будут?

3. Не относится к этой конкретной задаче, но к другой: Есть у меня на диске две БД 1.mdb и 2.mdb. Как с ними работать одновременно при помощи DAO? Например, вывести запись из 2.mdb по определенному значению поля (например, KOD) из 1.mdb?
2.mdb - справочник из 15000 записей, который не редактируется - это международная классификация. Нет смысла его закидывать отдельной таблицей в 1.mdb из-за 5-значного кода одной записи для того, чтобы этот 5-зн. код занести в поле другой таблицы. И эти 15000 записей будут лежать мертвым грузом в 2,5 мБ в редактируемой БД. А с ADO и коннектами не хочу связываться. В теории получается так: кинуть KOD в переменную_1 - закрыть 2.mdb - открыть 2.mdb - найти в 2.mdb запись, удволетворяющую KOD - занести ее в переменную_2 - закрыть 2.mdb - открыть 1.mdb - занести в нее значение переменной_2 - почистить обе переменные? Этот длинный путь единственный? Или есть что оптимальнее и короче?

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Re: DAO & MDI & Data + *.mdb

Сообщение VVitafresh » 10.11.2006 (Пт) 22:15

Dummiel писал(а):Работаю с DAO. К ADO чегой-то душа не лежит.
А зря!
Интерфейс - MDI-форма, и т.п. БД открываю в первой дочерней форме через Data, которая "лежит" на ней же.
Лучше не работать с Data, делай все непосредственно через код.
3. Не относится к этой конкретной задаче, но к другой: Есть у меня на диске две БД 1.mdb и 2.mdb. Как с ними работать одновременно при помощи DAO?
Если прилинковать нужную таблицу к базе, то работа с ней ничем не отличается от работы с обычными таблицами, не надо делать никаких лишних описанных тобой телодвижений.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Dummiel
Бывалый
Бывалый
 
Сообщения: 235
Зарегистрирован: 11.06.2004 (Пт) 9:15
Откуда: Алтай

Re: DAO & MDI & Data + *.mdb

Сообщение Dummiel » 15.11.2006 (Ср) 14:01

VVitafresh писал(а):
Dummiel писал(а):Работаю с DAO. К ADO чегой-то душа не лежит.
А зря!
[quote]

Jedem das zeine!

А за подсказку спасибо! :)


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 1

    TopList