Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Разделение базы
 
 автор: Ники   (30.03.2007 в 10:15)   личное сообщение
 
 

Access2002. Подскажите пожалуйста как лучше сделать разделение базы на «Интерфейс» и «Данные»? Использование связных таблиц не проходит (рекордсеты не работают), а другого способа не знаю. Думаю что можно через ИМПОРТ – ЭКСПОРТ но что-то сомнительно… Может есть что-то еще? Заранее спасибо…

  Ответить  
 
 автор: akim   (30.03.2007 в 13:03)   личное сообщение
 
 

А почему использование связанных таблиц не подходит? (почему не работают рекордсеты, какая ошибка возникает)?

  Ответить  
 
 автор: Ники   (30.03.2007 в 13:09)   личное сообщение
 
 

При открытии рекордсета выдается сообщение "Недопустимая операция" (err 3219)

  Ответить  
 
 автор: akim   (30.03.2007 в 13:31)   личное сообщение
 
 

А в прилинкованные таблицы вы нормально заходите? И запрос на основе прилинкованной таблицы без проблем можно создать?

  Ответить  
 
 автор: osmor   (30.03.2007 в 14:00)   личное сообщение
 
 

Это не связано со разделением базы

  Ответить  
 
 автор: akim   (30.03.2007 в 14:18)   личное сообщение
 
 

Я тоже так думаю. :)

  Ответить  
 
 автор: Ники   (30.03.2007 в 14:42)   личное сообщение
 
 

А всетаки способ ИМПОРТ таблиц при открытии базы и ЭКСПОРТ при закрытии реален? Ведь в 1С происходит примерно тоже самое...

  Ответить  
 
 автор: Explorer   (30.03.2007 в 15:05)   личное сообщение
 
 

1) что-то не понял я про "примерно тоже самое" в 1С

2) какой смысл Имортировать и экспотрировать ТАБЛИЦЫ
3) попробуйте ручками и посмотрите на изменения размера базы

  Ответить  
 
 автор: Ники   (30.03.2007 в 16:41)   личное сообщение
 
 

Весь смысл в разделении базы ! Экспериментирую на копии. Разделил базу при помощи мастера – все функции останавливаются на открытии рекордсета из за связанных таблиц. А импорт и экспорт решают проблему. Правда размер – это ДА!… А вообще есть какой то способ заставить работать рекордсет со связными таблицами?

  Ответить  
 
 автор: Explorer   (30.03.2007 в 17:01)   личное сообщение
 
 

весь смысл разделения базы это разделение данных и интерфейса (ну и еще десяток - другой резонов)

в вашем случае этого разделения фактически не происходит (про десяток - другой резонов вообще молчу)

с этим Импортом-Экспортом таблимиц вы затеваете ерунду.

  Ответить  
 
 автор: Ники   (30.03.2007 в 17:12)   личное сообщение
 
 

Я понимаю так что проблема со связанными таблицами и рекордсетом неразрешима ?

  Ответить  
 
 автор: osmor   (30.03.2007 в 17:30)   личное сообщение
 
 

Да нет никаких проблем "со связанными таблицами и рекордсетом"! их не существует...
у вас в принципе что-то не правильно срекордсетом, это не зависит от того связанные таблицы или нет.
Дайте код открытия рекордсета, скажите на какой строке ошибка

  Ответить  
 
 автор: Ники   (30.03.2007 в 18:26)   личное сообщение
 
 

Таблица Таб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” ?

  Ответить  
 
 автор: osmor   (30.03.2007 в 21:27)   личное сообщение
 
 

Сильно подозреваю, что у вас просто путаница с типами рекордсетов.
Какой ACCESS?
Какие библиотеки подключены и в каком порядке?
Попробуйте написать :
Dim db As dao.Database
Dim rs As dao.Recordset

  Ответить  
 
 автор: Ники   (31.03.2007 в 15:10)   личное сообщение
 
 

Работаю в 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 – та же ошибка.

  Ответить  
 
 автор: osmor   (31.03.2007 в 21:49)   личное сообщение
 
 

а ну понятно...
действительно так нельзя с разделенными таблицами
"Таб1" - не является строкой SQL
напишите так:


Dim db As dao.Database
Dim rs As dao.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("select * from Таб1")

  Ответить  
 
 автор: Ники   (02.04.2007 в 09:42)   личное сообщение
 
 

Работает (даже без добавления DAO.)! Спасибо! Это конечно решение проблемы даже при большом количестве рекордсетов в базе. Но все таки из-за чего возникала ошибка? Библиотеки? Или что-то еще? Подскажите, пожалуйста, если не трудно, где можно почитать о библиотеках и их использовании. В стандартной справке ничего нет…Еще раз большое спасибо!

  Ответить  
 
 автор: osmor   (02.04.2007 в 10:31)   личное сообщение
 
 

Ошибка возникла из-за того, что теперь в данной базе нет такой таблицы. Всегда используйте при открытии рекордсета строку SQL или имя сохраненного запроса и проблем не будет.
Про подключаемые библиотеки нужно читать в справках к данной библиотеке или у ее производителя. Про DAO есть в стандартной стправке...

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList