Здравствуйте, други!
Просветите, 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 - почистить обе переменные? Этот длинный путь единственный? Или есть что оптимальнее и короче?