Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4 5   вперед  Ctrl      все
 открытие дополнительных баз данных не возможно  [new]
MasterZ
Member

Откуда: Москва
Сообщений: 1144
Access 2003 mdb + клиент mdb + терминальный доступ.
Хотелось бы выяснить раз и навсегда возможно ли избавиться от этой ошибки при условии что:
1. Переход на сиквел пока не возможен.
2. Все оптимизации по количеству открытых рекордсетов в формах выполнены.

В формуме прочел, что спасает переход на access 2007.
Пробовал переводить базу и клиента в формат access 2007 (accdb) результат не изменился.

Может быть есть какой нибудь вариант с office 2010?

Хочу заметить, что ошибка проявляется при открытии формы, тогда, когда открыто несколько емких форм(около 4 шт. ) во всех остальных случаях все работает нормально.

спасибо.
17 дек 10, 09:53    [9953537]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2755
Очень важную подняли тему.

"Открытие дополнительных баз данных не возможно" - это Ахилессова пята Аксесса.
Практически, из-за этого ограничения невозможно создавать удобные и могучие интерфейсы.
Приходится постоянно ограничиваться. О чём только думали разработчики Аксесса, когда
закладывали это ограничение.

Как с ним бороться?

1. В частности, на мой взгляд, можно отключать
RecordSource у комбобоксов, которые не содержат данных.
Не панацея конечно, но всё-же.

2. Стараться не размещать много субформ на закладках.

3. На неактивных закладках делать RecordSource = ""

4. Уменьшать количество JOIN - ов в запросах.

5. Делать проект, одновременно держа в уме это ограничение Аксесса.
Ограничивать, оптимизировать всё, что можно. Искать компромисс.
Не стесняться и говорить про ограничения Аксесса пользователям.


Я сам в поиске, что выбрать для дальнейшей разработки.
Либо совсем уйти Аксесса с сторону Java или C#, или в сторону ADP.
Пока не определился.

Как и Вы я постоянно думаю, что Аксесс откажется показывать в очередной раз.
Это конечно не работа. Но пока приходится с этим мирится, как-то подстраиваться.
Ребята тут пишут, что у ADP нет этих проблем.
17 дек 10, 16:12    [9957350]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
nord-woolf
Member

Откуда: And God I know I'm one
Сообщений: 4896
Nebo,

Пост смахивает на "плач недоросля". :)
17 дек 10, 16:28    [9957513]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2755
nord-woolf
Nebo,

Пост смахивает на "плач недоросля". :)


А Вы поясните почему? :) Что я не так написал?
17 дек 10, 16:40    [9957626]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2755
nord-woolf

И если у Вас не возникало проблем по теме топика,
или Вы их успешно решили - так напишите пожалуйста здесь историю успеха:)
Очень интересно.
17 дек 10, 16:45    [9957665]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
alvk
Member [заблокирован]

Откуда: Находка
Сообщений: 10974
Nebo,

Мне так и не удалось воссоздать подобную ситуацию, может у меня всё криво? не знаю...
17 дек 10, 17:07    [9957857]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2755
Это может у меня не получается:) Когда только научусь программировать:)
Хотя MasterZ озвучил ведь проблему. Значит она всё-же есть.
Как только делается навороченный интерфейс, так тут как тут за углом
тема топика:) Правда.
17 дек 10, 17:14    [9957918]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
nord-woolf
Member

Откуда: And God I know I'm one
Сообщений: 4896
Nebo,
Если очень кратко:
...Либо совсем уйти Аксесса с сторону Java или C#, или в сторону ADP...
Вольный перевод, типа шутко:
...Тяжелая атлетика оказалась слишком тяжелой, вот думаю каким другим видом спорта заняться,
хоровым пением или рыбалкой...

1. В частности, на мой взгляд, можно отключать
RecordSource у комбобоксов, которые не содержат данных.
Не панацея конечно, но всё-же.

Зачем на форме комбобоксы, которые не содержат данных?

2. Стараться не размещать много субформ на закладках.
Интерфейс должен быть продуман и ... но в целом да - сабформ по минимуму.

3. На неактивных закладках делать RecordSource = ""
Что есть "Закладка"? Если это вкладка в наборе вкладок, то:
Зачем? Что-бы при активации вновь запрашивать данные?
Можно/нужно подгружать данные при первой активации вкладки.

4. Уменьшать количество JOIN - ов в запросах.
Как можно уменьшить кол-во Join-ов, если мне нужны данные полей N таблиц?

5. Делать проект, одновременно держа в уме это ограничение Аксесса.
Это ограничение НЕ Access.

Ограничивать...
Слишком размыто, что/кого ограничивать? Себя? Пользователя?

... оптимизировать всё...
Да.

...Искать компромисс.
Выбирать оптимальные решения для конкретной задачи.

Не стесняться и говорить про ограничения Аксесса пользователям.
Если вы уперлись в ограничение - значит ВЫ не правильно выбрали инструмент(ы).
И не надо сваливать свои незнания/малый опыт на ограничения инструмента(ов).

Сам с таким явлением не сталкивался ни разу.
Но у меня малый опыт файл-серверных конструкций, да и одновременно работающих пользователей более 10 наверно и не было.
Но, на этом форуме попадались интересные топики на эту тему.

пс. Во понаписал-то! Почти война и мир. :)
17 дек 10, 17:22    [9957982]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2755
nord-woolf,

Вот есть ощущение у меня, что Вы не сталкивались с этой проблемой сильно:)
Что не знаете глубоко эту проблему. Спорить не будем - нет смысла.
Я могу также где-то и ошибаться. Но я неоднократно сталкивался с темой топика.
И прекрасно понимаю проблему, которую автор топик озвучил.

Насчёт хорового пения это Вы хорошо сказали:) Может мне надо им и заняться:)

автор
1. В частности, на мой взгляд, можно отключать
RecordSource у комбобоксов, которые не содержат данных.
Не панацея конечно, но всё-же.
Зачем на форме комбобоксы, которые не содержат данных?


Бывает так, что некоторые комбобоксы редко используется.
Я к чему этот пример привёл, чтобы показать, что приходится идти на все
возможные ухищрения, дабы минимизировать тему топика.


автор
3. На неактивных закладках делать RecordSource = ""
Что есть "Закладка"? Если это вкладка в наборе вкладок, то:
Зачем? Что-бы при активации вновь запрашивать данные?
Можно/нужно подгружать данные при первой активации вкладки.


Имеется ввиду что есть субформа на закладке.
Если закладка неактивна - то да можно вообще сделать так ControlSource = ""
Да, это вызывает лишние запросы к данным, при активации закладки.
А что делать? Как-то нужно бороться с темой топика:)


автор
4. Уменьшать количество JOIN - ов в запросах.
Как можно уменьшить кол-во Join-ов, если мне нужны данные полей N таблиц?


Здесь имеется ввиду разумная экономия. Где-то я читал, что каждый JOIN способствует
теме топика.

автор
5. Делать проект, одновременно держа в уме это ограничение Аксесса.
Это ограничение НЕ Access.


Ну почему так? Вроде-ж как это ограничение Jet?
Когда мы переходим на ADP, Jet больше не используется и темы топика
не возникает. Вроде так.

автор
Ограничивать...
Слишком размыто, что/кого ограничивать? Себя? Пользователя?


Да. Приходится ограничивать элементы интерфейса.
Автор топика об этом же и пишет. О высоконагруженных формах.
И поверьте такие формы нужны. И возникает проблема топика.


автор
Не стесняться и говорить про ограничения Аксесса пользователям.
Если вы уперлись в ограничение - значит ВЫ не правильно выбрали инструмент(ы).
И не надо сваливать свои незнания/малый опыт на ограничения инструмента(ов).


Я как раз ничего и не сваливаю. Ну разве нет проблемы топика?
Ну вот парень написал сюда о проблеме. Он столкнулся с этой проблемой.
Я сталкивался не раз.
Открытие дополнительных баз невозможно - ЭТО ограничение Аксесс.
Об этом написано в Сети.
Если не верите, попробуйте сделать несколько сложных форм,
чтобы они были одновременно на экране и Вы гарантированно получите это сообщение.
Его совсем нетрудно достичь.

автор
Сам с таким явлением не сталкивался ни разу.
Но у меня малый опыт файл-серверных конструкций


У Вас мало опыта. Извините великодушно:) Поэтому Вы меня не понимаете:)
17 дек 10, 17:44    [9958153]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
nord-woolf
Member

Откуда: And God I know I'm one
Сообщений: 4896
Nebo,
Если не верите, попробуйте сделать несколько сложных форм,
чтобы они были одновременно на экране и Вы гарантированно получите это сообщение.
Его совсем нетрудно достичь.

Вот именно потому, что у меня нет "сложных" (опять-таки понятие растяжимое) форм,
я с таким сообщением и не сталкивался.
Продумайте интерфейс. Не "ведитесь" на "хочу видеть все на одной форме одновременно".
Уходите в сторону контролов, не держущих открытыми наборы данных.

...Вроде-ж как это ограничение Jet?...
Jet<>Access, Access<>Jet.

...Я сталкивался не раз...
То, что вы постоянно сталкиваетесь с этим сообщением, говорит о том,
что вы так и не изучили истоки проблемы и пути ее решения.
Получается, вы постоянно топчитесь по одним и тем-же граблям.

Не надо нам сетовать на наличие граблей.
Уберите их, или научитесь обходить их стороной.
А потом и нас научите.

ps. Кстати, скринов "сложных" форм не подкинете?
17 дек 10, 18:01    [9958248]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
АндрейК
Member

Откуда: Москва
Сообщений: 339
Я всего один раз столкнулся с подобным сообщением программы и причину нашёл: забыл сделать в конце процедуры "... = Nothing" десяти переменным типа Recordset, объявленным на уровне модуля.
Перед этим, правда, пришлось пережить минуты растерянного недоумения: "откуда, к чёрту дополнительные бызы?"...
17 дек 10, 18:18    [9958351]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2755
nord-woolf
Nebo,
Если не верите, попробуйте сделать несколько сложных форм,
чтобы они были одновременно на экране и Вы гарантированно получите это сообщение.
Его совсем нетрудно достичь.

Вот именно потому, что у меня нет "сложных" (опять-таки понятие растяжимое) форм,
я с таким сообщением и не сталкивался.
Продумайте интерфейс. Не "ведитесь" на "хочу видеть все на одной форме одновременно".
Уходите в сторону контролов, не держущих открытыми наборы данных.

...Вроде-ж как это ограничение Jet?...
Jet<>Access, Access<>Jet.

...Я сталкивался не раз...
То, что вы постоянно сталкиваетесь с этим сообщением, говорит о том,
что вы так и не изучили истоки проблемы и пути ее решения.
Получается, вы постоянно топчитесь по одним и тем-же граблям.

Не надо нам сетовать на наличие граблей.
Уберите их, или научитесь обходить их стороной.
А потом и нас научите.

ps. Кстати, скринов "сложных" форм не подкинете?




Согласен:) Может Вы и правы. Все данные держать на экране нет смысла.
Может у меня опыта не хватает и я топчусь на одном месте.
Скрин выложить не могу.

Правда удобно бывает, когда открыта на экране форме,
двойной щелчок на поле появляется детализации этого поля
и так далее. И в один прекрасный момент Аксесс выдаёт тему топика.


автор
Я всего один раз столкнулся с подобным сообщением программы и причину нашёл: забыл сделать в конце процедуры "... = Nothing" десяти переменным типа Recordset, объявленным на уровне модуля.
Перед этим, правда, пришлось пережить минуты растерянного недоумения: "откуда, к чёрту дополнительные бызы?"..


Что касается Nothing и Close - то это всё делаю давно.
Давно правда не сталкивался с темой топика,
но это только потому, что перестал держать много табличек на экране.
Хотя по большому счёту это снижает удобство программы.


Вас послушаешь, так вроде как проблемы и вовсе нет:)
Вроде как всё сводится только к ошибкам программиста:)
Интересно так ли это?
18 дек 10, 01:44    [9960066]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
alvk
Member [заблокирован]

Откуда: Находка
Сообщений: 10974
Nebo,

так скриншот будет? хотелось бы глянуть.
18 дек 10, 07:40    [9960301]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2755
alvk
Nebo,

так скриншот будет? хотелось бы глянуть.


Чуете, что крутые тут у меня скриншоты:))
Нет, пока скриншота не будет:)
18 дек 10, 11:08    [9960470]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
Попытаюсь быть немного полезен. лет 5 назад начале создания своей большой базы неоднократно нарывался на сообщение типа открытие дополнительных баз данных невозможно, причем это происходило в не зависимости что открывалось, то-ли много таблиц или последовательно много запросов или вперемежку, или одновременно открывалось много форм или отчетов. Способ был найден в просторах ИНЕТА ВСЕМОГУЩЕГО - в параметрах реестра изменялось 3-4 параметра ограничивающих количество открытых объектов в акцессе (именно объектов не файлов) и после этого исправления открывал одновременно более 50 таблиц и запросов просто немерено, единственная беда в том что забыл адресочек в инете и запись на бумаге утрачена, но это реально работало. Сейчас нет проблем с данным вопросом потому что нет нет необходимости открытия большого количества объектов. Очень самому бы хотелось найти этот источник информации пока не получается, но может кому-то повезет найти Так не забудьте про братьев с той же проблемой! С уважением Alex999
18 дек 10, 11:24    [9960503]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2755
alex999kon,

автор
в параметрах реестра изменялось 3-4 параметра ограничивающих количество открытых объектов в акцессе


Да я вроде менял такие параметры когда-то. Тоже не помню какие.
Кажется один какой-то параметр.

Какой из картинки?

К сообщению приложен файл. Размер - 23Kb
18 дек 10, 12:03    [9960557]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2755
Забыл сказать:) Не помогало изменение параметров.
18 дек 10, 12:04    [9960560]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2755
Кажется вот об этом параметре шла речь MaxLocksPerFile.
У меня стоит значение 9500. Может я его и ставил. Не помню.
18 дек 10, 12:07    [9960571]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2755
Ален Браун комментирует похожую ситуацию:

http://www.accessmonster.com/Uwe/Forum.aspx/access/57377/Cannot-open-any-more-databases-3048
18 дек 10, 12:12    [9960580]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2755
alex999kon,

автор
в параметрах реестра изменялось 3-4 параметра ограничивающих количество открытых объектов в акцессе (именно объектов не файлов)


Интересно, что это за параметры?
18 дек 10, 12:16    [9960587]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
alex999kon
Member

Откуда: Россия Иваново
Сообщений: 4250
Если честно то совсем не помню но то что одновременно открывал 50 таблиц и кучу запросов это точно!
18 дек 10, 12:36    [9960634]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
alvk
Member [заблокирован]

Откуда: Находка
Сообщений: 10974
Nebo
alvk
Nebo,

так скриншот будет? хотелось бы глянуть.


Чуете, что крутые тут у меня скриншоты:))
Нет, пока скриншота не будет:)


на нет и суда нет.
19 дек 10, 01:40    [9962450]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
MasterZ
Member

Откуда: Москва
Сообщений: 1144
alex999kon
Попытаюсь быть немного полезен. лет 5 назад начале создания своей большой базы неоднократно нарывался на сообщение типа открытие дополнительных баз данных невозможно, причем это происходило в не зависимости что открывалось, то-ли много таблиц или последовательно много запросов или вперемежку, или одновременно открывалось много форм или отчетов. Способ был найден в просторах ИНЕТА ВСЕМОГУЩЕГО - в параметрах реестра изменялось 3-4 параметра ограничивающих количество открытых объектов в акцессе (именно объектов не файлов) и после этого исправления открывал одновременно более 50 таблиц и запросов просто немерено, единственная беда в том что забыл адресочек в инете и запись на бумаге утрачена, но это реально работало. Сейчас нет проблем с данным вопросом потому что нет нет необходимости открытия большого количества объектов. Очень самому бы хотелось найти этот источник информации пока не получается, но может кому-то повезет найти Так не забудьте про братьев с той же проблемой! С уважением Alex999


Очень похоже на придуманную историю, которую хочет услышать большое количество программистов Access. Написано много, а толку 0, зачем тогда писать...

вот статистика открытых форм. Проводилась с помощью двух процедур вычитанных из форума.
форма кол-во рекордсетов количество соединений
форма1 10 0
форма2 24 69
форма3 32 63
форма418 36
форма5 2754


Форма5 уже не открыватся т.к. для связанных таблиц ограничение
рекордсетов - 125
Соединений -252
20 дек 10, 15:58    [9967524]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
Nebo
Member

Откуда:
Сообщений: 2755
MasterZ,

автор
Форма5 уже не открыватся т.к. для связанных таблиц ограничение
рекордсетов - 125
Соединений -252


Что-то мне непонятно:) Поподробнее можно пожалуйста?
20 дек 10, 16:17    [9967708]     Ответить | Цитировать Сообщить модератору
 Re: открытие дополнительных баз данных не возможно  [new]
MasterZ
Member

Откуда: Москва
Сообщений: 1144
Nebo
MasterZ,

автор
Форма5 уже не открыватся т.к. для связанных таблиц ограничение
рекордсетов - 125
Соединений -252


Что-то мне непонятно:) Поподробнее можно пожалуйста?


Private Sub Кнопка2_Click() нажимаем кнопку до открытия формы и после
разница есть расход на форму.

Таблицы прилинкованные!!! С обычными таблицами результат будет другой.

Option Compare Database
Option Explicit '

Private Sub Кнопка2_Click()
    Test
    test2
    test3
    test4
End Sub

Public Function Test(Optional f)
On Error GoTo Err_Handler
    Dim db As Object
    Set db = CurrentDb

    Dim col As New Collection
    Dim i As Long
    Do
        col.Add db.OpenRecordset("select * from [Invoice Registration]")
        i = i + 1
    Loop
    Exit Function
Err_Handler:
    Me.Поле0 = err.Description
    Me.Поле3 = i
    f = i
End Function


Public Function test2(Optional f)
On Error GoTo Err_Handler
    'Dim db As dao.Database
    Dim db As Object
    Set db = CurrentDb

    Dim col As New Collection
    Dim i As Long
    Do
        Set db = CurrentDb

        col.Add db
        i = i + 1
    Loop
    Exit Function
Err_Handler:
   Me.Поле5 = err.Description
    Me.Поле7 = i
    f = i
End Function

Public Function test3(Optional f)
On Error GoTo Err_Handler
    'Dim db As dao.Database
    Dim con As ADODB.Connection
   
    Dim rs As New ADODB.Recordset
     Set con = CurrentProject.Connection

    Dim col As New Collection
    Dim i As Long
    Do
        Set rs = New ADODB.Recordset
        rs.Open "select * from [Invoice Registration]", con
        col.Add rs
        i = i + 1
    Loop
    Exit Function
Err_Handler:
   Me.Поле9 = err.Description
    Me.Поле11 = i
    f = i
End Function

Public Function test4(Optional f)

'Недостаточно памяти для завершения операции.
'i=64

'On Error GoTo Err_Handler
'    'Dim db As dao.Database
'    Dim con As ADODB.Connection
'
'    Dim rs As New ADODB.Recordset
'     Set con = ReportDirectConnection
'
'    Dim col As New Collection
'    Dim i As Long
'    Do
'        Set rs = New ADODB.Recordset
'        rs.Open "select * from [Invoice Registration]", con
'        col.Add rs
'        i = i + 1
'        If i = 400 Then
'            Me.Поле15 = i
'            Exit Function
'        End If
'
'    Loop
'    Exit Function
'Err_Handler:
'   Me.Поле13 = err.Description
'    Me.Поле15 = i
'    f = i
End Function
21 дек 10, 10:45    [9971347]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4 5   вперед  Ctrl      все
Все форумы / Microsoft Access Ответить