|
|
|
| Access2002. Подскажите пожалуйста как лучше сделать разделение базы на «Интерфейс» и «Данные»? Использование связных таблиц не проходит (рекордсеты не работают), а другого способа не знаю. Думаю что можно через ИМПОРТ – ЭКСПОРТ но что-то сомнительно… Может есть что-то еще? Заранее спасибо… | |
|
| |
|
|
|
| А почему использование связанных таблиц не подходит? (почему не работают рекордсеты, какая ошибка возникает)? | |
|
| |
|
|
|
| При открытии рекордсета выдается сообщение "Недопустимая операция" (err 3219) | |
|
| |
|
|
|
| А в прилинкованные таблицы вы нормально заходите? И запрос на основе прилинкованной таблицы без проблем можно создать? | |
|
| |
|
|
|
| Это не связано со разделением базы | |
|
| |
|
|
|
|
| А всетаки способ ИМПОРТ таблиц при открытии базы и ЭКСПОРТ при закрытии реален? Ведь в 1С происходит примерно тоже самое... | |
|
| |
|
|
|
| 1) что-то не понял я про "примерно тоже самое" в 1С
2) какой смысл Имортировать и экспотрировать ТАБЛИЦЫ
3) попробуйте ручками и посмотрите на изменения размера базы | |
|
| |
|
|
|
| Весь смысл в разделении базы ! Экспериментирую на копии. Разделил базу при помощи мастера – все функции останавливаются на открытии рекордсета из за связанных таблиц. А импорт и экспорт решают проблему. Правда размер – это ДА!… А вообще есть какой то способ заставить работать рекордсет со связными таблицами? | |
|
| |
|
|
|
| весь смысл разделения базы это разделение данных и интерфейса (ну и еще десяток - другой резонов)
в вашем случае этого разделения фактически не происходит (про десяток - другой резонов вообще молчу)
с этим Импортом-Экспортом таблимиц вы затеваете ерунду. | |
|
| |
|
|
|
| Я понимаю так что проблема со связанными таблицами и рекордсетом неразрешима ? | |
|
| |
|
|
|
| Да нет никаких проблем "со связанными таблицами и рекордсетом"! их не существует...
у вас в принципе что-то не правильно срекордсетом, это не зависит от того связанные таблицы или нет.
Дайте код открытия рекордсета, скажите на какой строке ошибка | |
|
| |
|
|
|
| Таблица Таб1 – связанная (в коде опустил объявление других переменных, присвоения и пр.) По коду останов происходит на строке 5
Function ТаблБ()
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("Таб1", dbOpenTable)
Далее идут циклы, открытие др. рекордсетов и т.д. Но самое интересное то, что до разделения базы все работало идеально. Может не подключены какие то библиотеки кроме “Mirkrosoft DAO 3.6 Objects Library” ? | |
|
| |
|
|
|
| Сильно подозреваю, что у вас просто путаница с типами рекордсетов.
Какой ACCESS?
Какие библиотеки подключены и в каком порядке?
Попробуйте написать :
Dim db As dao.Database
Dim rs As dao.Recordset
|
| |
|
| |
|
|
|
| Работаю в ACCESS 2002. С добавлением DAO. – тот же результат.
Подключены библиотеки в следующем порядке:
1. Visual Basic For Application
2. Microsoft Access 11.0 Object Library
3. OLE Automation
4. Microsoft DAO 3.6 Object Library
5. Microsoft ActiveX Data Object Library
Проверял в ACCESS 2003 – та же ошибка. | |
|
| |
|
|
|
| а ну понятно...
действительно так нельзя с разделенными таблицами
"Таб1" - не является строкой SQL
напишите так:
Dim db As dao.Database
Dim rs As dao.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("select * from Таб1")
|
| |
|
| |
|
|
|
| Работает (даже без добавления DAO.)! Спасибо! Это конечно решение проблемы даже при большом количестве рекордсетов в базе. Но все таки из-за чего возникала ошибка? Библиотеки? Или что-то еще? Подскажите, пожалуйста, если не трудно, где можно почитать о библиотеках и их использовании. В стандартной справке ничего нет…Еще раз большое спасибо! | |
|
| |
|
|
|
| Ошибка возникла из-за того, что теперь в данной базе нет такой таблицы. Всегда используйте при открытии рекордсета строку SQL или имя сохраненного запроса и проблем не будет.
Про подключаемые библиотеки нужно читать в справках к данной библиотеке или у ее производителя. Про DAO есть в стандартной стправке... | |
|
| |