Открытие базы данных невозможно вероятно это не база данных приложения пользователя
FORUM_NAME: АРМ Орион Про версии до 1.20
Описание: АРМ "Орион Про" — пакет программного обеспечения для аппаратно-программного комплекса ИСО "Орион", на котором реализуются системы охранной сигнализации, контроля и управления доступом, охранного видеонаблюдения, автоматика противопожарных систем, сопряженные с инженерными системами объектов.
Справочная информация, руководства для АРМ Орион Про версии до 1.20
Модератор: Модераторы
Господа, этот вопрос уже поднимался, но решения так никто и не предложил.
При попытке запуска АБД из оболочки вылезает гадское окно Ошибка открытия БД: qrPhoneRelations: бла-бла-бла. Как отмечалось ранее это происходит из-за того что АБД и Орион ПРО имеют разные версии. Возникают вопросы
1 как это возможно если АБД и Орион ПРО инсталятся из одного exe файла? вина разработчика?
2 Если все-таки это возможно, то как с этим бороться?
от безысходности был скачан SP5 но не помогло)
1. Возможно. Т.к. разные версии имеет база и ПО (а не АБД и Про).
2. Модернизируйте просто базу данных с помощью менеджера
с SQL столкнулся впервые, не сочтите за труд, подскажите каким макаром происходит модернизация базы данных, и как определить до какого состояния модернизировать чтобы АБД заработал.
заранее спасибо
Это не очень сложно. Модернизация делается не средствами скл, а с помощью менеджера центрального сервера. Это прошная утилита, в пуске найдёте.
Запускаете её, вводите пароль, в меню выбираете БД - Модернизация-слияния. Оставляете переключатель на пункте модернизация. В этом же мастере можно выбрать, за какие периоды переносить журналы тревог, статистики, событий.
Главное на этапе, когда мастер попросить ввести параметры подключения к БД введите новое имя базы данных. Со старым не модернизирует. Вообще там довольно просто всё.
С большой базой событий модернизация не завершалась, выполнялась сутки и всё равно прерывалась. События долой, и тогда всё быстренько.
во общем аналогичная проблема у меня возникла. Поставил орион_про_1.11sp5 и sql_express_2005 на чистую windows 7. при запуске АБД
cancerman писал(а): Ошибка открытия БД: qrPhoneRelations: бла-бла-бла.
Nesk писал(а): 1. Возможно. Т.к. разные версии имеет база и ПО (а не АБД и Про).
2. Модернизируйте просто базу данных с помощью менеджера
В формуме прочел, что спасает переход на access 2007.
Пробовал переводить базу и клиента в формат access 2007 (accdb) результат не изменился.
Может быть есть какой нибудь вариант с office 2010?
Хочу заметить, что ошибка проявляется при открытии формы, тогда, когда открыто несколько емких форм(около 4 шт. ) во всех остальных случаях все работает нормально.
"Открытие дополнительных баз данных не возможно" - это Ахилессова пята Аксесса.
Практически, из-за этого ограничения невозможно создавать удобные и могучие интерфейсы.
Приходится постоянно ограничиваться. О чём только думали разработчики Аксесса, когда
закладывали это ограничение.
Как с ним бороться?
1. В частности, на мой взгляд, можно отключать
RecordSource у комбобоксов, которые не содержат данных.
Не панацея конечно, но всё-же.
2. Стараться не размещать много субформ на закладках.
3. На неактивных закладках делать RecordSource = ""
4. Уменьшать количество JOIN - ов в запросах.
5. Делать проект, одновременно держа в уме это ограничение Аксесса.
Ограничивать, оптимизировать всё, что можно. Искать компромисс.
Не стесняться и говорить про ограничения Аксесса пользователям.
1. В частности, на мой взгляд, можно отключать
RecordSource у комбобоксов, которые не содержат данных.
Не панацея конечно, но всё-же.
Зачем на форме комбобоксы, которые не содержат данных?
2. Стараться не размещать много субформ на закладках.
Интерфейс должен быть продуман и . но в целом да - сабформ по минимуму.
3. На неактивных закладках делать RecordSource = ""
Что есть "Закладка"? Если это вкладка в наборе вкладок, то:
Зачем? Что-бы при активации вновь запрашивать данные?
Можно/нужно подгружать данные при первой активации вкладки.
4. Уменьшать количество JOIN - ов в запросах.
Как можно уменьшить кол-во Join-ов, если мне нужны данные полей N таблиц?
5. Делать проект, одновременно держа в уме это ограничение Аксесса.
Это ограничение НЕ Access.
Ограничивать.
Слишком размыто, что/кого ограничивать? Себя? Пользователя?
. оптимизировать всё.
Да.
. Искать компромисс.
Выбирать оптимальные решения для конкретной задачи.
Не стесняться и говорить про ограничения Аксесса пользователям.
Если вы уперлись в ограничение - значит ВЫ не правильно выбрали инструмент(ы).
И не надо сваливать свои незнания/малый опыт на ограничения инструмента(ов).
Сам с таким явлением не сталкивался ни разу.
Но у меня малый опыт файл-серверных конструкций, да и одновременно работающих пользователей более 10 наверно и не было.
Но, на этом форуме попадались интересные топики на эту тему.
Вот есть ощущение у меня, что Вы не сталкивались с этой проблемой сильно:)
Что не знаете глубоко эту проблему. Спорить не будем - нет смысла.
Я могу также где-то и ошибаться. Но я неоднократно сталкивался с темой топика.
И прекрасно понимаю проблему, которую автор топик озвучил.
Насчёт хорового пения это Вы хорошо сказали:) Может мне надо им и заняться:)
автор |
---|
1. В частности, на мой взгляд, можно отключать RecordSource у комбобоксов, которые не содержат данных. Не панацея конечно, но всё-же. Зачем на форме комбобоксы, которые не содержат данных? |
Бывает так, что некоторые комбобоксы редко используется.
Я к чему этот пример привёл, чтобы показать, что приходится идти на все
возможные ухищрения, дабы минимизировать тему топика.
автор |
---|
3. На неактивных закладках делать RecordSource = "" Что есть "Закладка"? Если это вкладка в наборе вкладок, то: Зачем? Что-бы при активации вновь запрашивать данные? Можно/нужно подгружать данные при первой активации вкладки. |
Имеется ввиду что есть субформа на закладке.
Если закладка неактивна - то да можно вообще сделать так ControlSource = ""
Да, это вызывает лишние запросы к данным, при активации закладки.
А что делать? Как-то нужно бороться с темой топика:)
автор |
---|
4. Уменьшать количество JOIN - ов в запросах. Как можно уменьшить кол-во Join-ов, если мне нужны данные полей N таблиц? |
Здесь имеется ввиду разумная экономия. Где-то я читал, что каждый JOIN способствует
теме топика.
автор |
---|
5. Делать проект, одновременно держа в уме это ограничение Аксесса. Это ограничение НЕ Access. |
Ну почему так? Вроде-ж как это ограничение Jet?
Когда мы переходим на ADP, Jet больше не используется и темы топика
не возникает. Вроде так.
автор |
---|
Ограничивать. Слишком размыто, что/кого ограничивать? Себя? Пользователя? |
Да. Приходится ограничивать элементы интерфейса.
Автор топика об этом же и пишет. О высоконагруженных формах.
И поверьте такие формы нужны. И возникает проблема топика.
автор |
---|
Не стесняться и говорить про ограничения Аксесса пользователям. Если вы уперлись в ограничение - значит ВЫ не правильно выбрали инструмент(ы). И не надо сваливать свои незнания/малый опыт на ограничения инструмента(ов). |
автор |
---|
Сам с таким явлением не сталкивался ни разу. Но у меня малый опыт файл-серверных конструкций |
. Вроде-ж как это ограничение Jet.
Jet<>Access, Access<>Jet .
Не надо нам сетовать на наличие граблей.
Уберите их, или научитесь обходить их стороной.
А потом и нас научите.
. Вроде-ж как это ограничение Jet.
Jet<>Access, Access<>Jet .
Не надо нам сетовать на наличие граблей.
Уберите их, или научитесь обходить их стороной.
А потом и нас научите.
Согласен:) Может Вы и правы. Все данные держать на экране нет смысла.
Может у меня опыта не хватает и я топчусь на одном месте.
Скрин выложить не могу.
Правда удобно бывает, когда открыта на экране форме,
двойной щелчок на поле появляется детализации этого поля
и так далее. И в один прекрасный момент Аксесс выдаёт тему топика.
Что касается Nothing и Close - то это всё делаю давно.
Давно правда не сталкивался с темой топика,
но это только потому, что перестал держать много табличек на экране.
Хотя по большому счёту это снижает удобство программы.
автор |
---|
в параметрах реестра изменялось 3-4 параметра ограничивающих количество открытых объектов в акцессе |
Да я вроде менял такие параметры когда-то. Тоже не помню какие.
Кажется один какой-то параметр.
Какой из картинки?
автор |
---|
в параметрах реестра изменялось 3-4 параметра ограничивающих количество открытых объектов в акцессе (именно объектов не файлов) |
Очень похоже на придуманную историю, которую хочет услышать большое количество программистов Access. Написано много, а толку 0, зачем тогда писать.
автор |
---|
Форма5 уже не открыватся т.к. для связанных таблиц ограничение рекордсетов - 125 Соединений -252 |
автор |
---|
Форма5 уже не открыватся т.к. для связанных таблиц ограничение рекордсетов - 125 Соединений -252 |
Private Sub Кнопка2_Click() нажимаем кнопку до открытия формы и после
разница есть расход на форму.
В этой статье устраняется проблема, которая возникает при использовании библиотеки DAO для преобразования базы данных.
Office 365 ProPlus переименован в Майкрософт 365 корпоративные приложения. Для получения дополнительной информации об этом изменении прочитайте этот блог.
Исходный номер КБ: 888634
Эта статья применяется к файлу базы данных Microsoft Access (.mdb) или к файлу базы данных Microsoft Access (.accdb). Требуются базовые навыки макроса, кодирования и интероперабельности.
Симптомы
База данных находится в неожиданном состоянии
Причина
Эта проблема может возникнуть при использовании библиотеки объекта доступа к данным (DAO) для преобразования базы данных, созданной в Microsoft Access 97 или более ранней версии с помощью CompactDatabase метода. Метод CompactDatabase может оставить новую базу данных в частично преобразованной состоянии.
Решение
Чтобы устранить эту проблему, используйте один из следующих методов.
Метод 1. Используйте команду Convert Database, если у вас есть исходная база данных.
Если у вас еще есть копия исходной базы данных в исходном формате, используйте Convert Database команду. Для этого выполните следующие действия:
Access 2000, Access 2002 или Access 2003
Сделайте копию резервного копирования исходной базы данных.
Запуск Access 2000 или более поздней версии.
В меню Инструменты щелкните Утилиты базы данных, щелкните Преобразование базы данных, а затем нажмите кнопку Доступ к формату файлов 2000.
Если вы используете Access 2000, в меню Convert Database отображается только версия базы данных текущего доступа.
В диалоговом окне "База данных для преобразования" щелкните имя файла базы данных, которое необходимо преобразовать, и нажмите кнопку Преобразование.
В диалоговом окне Преобразование базы данных введите новое имя файла базы данных и нажмите кнопку Сохранить.
Access 2007
- Сделайте копию резервного копирования исходной базы данных.
- Попробуйте открыть эту базу данных.
- При открываемом файловом формате Access 97 или Access 95 .mdb access отображает диалоговое окно Для повышения базы данных. Вам будет предложено обновить базу данных.
- Щелкните Да, чтобы обновить базу данных до того формата файлов, который вы выбрали в формате файла по умолчанию в Access 2007. После преобразования базы данных можно внести изменения в файл в Access 2007. Однако вы больше не можете открыть базу данных с помощью версии Access раньше, чем версия, в которую была преобразована база данных.
Метод 2. Восстановление данных базы данных и запросов базы данных, если у вас нет исходной базы данных без защиты
Если у вас нет копии исходной базы данных без защиты в исходном формате и вы уже пробовали стандартные методы устранения неполадок с коррупцией, попробуйте восстановить данные базы данных и запросы базы данных. Для этого выполните следующие действия:
Сделайте копию резервного копирования исходной базы данных.
Запуск Access 2000 или более поздней версии.
Access 2000, Access 2002 или Access 2003
- Щелкните Office кнопку, нажмите кнопку Новая, щелкните Пустую базу данных, а затем нажмите кнопку Создать, чтобы создать новую пустую базу данных.
Access 2000, Access 2002 или Access 2003
- В меню Вставка выберите пункт Модуль. Начинается редактор Visual Basic Microsoft и создается новый модуль.
- На вкладке Создание щелкните вниз стрелку под Макроном и нажмите модуль. Начинается редактор Visual Basic Microsoft и создается новый модуль.
В меню Сервис выберите пункт Ссылки.
В списке Доступные ссылки найдите объектную библиотеку Microsoft DAO 3.6, а затем нажмите кнопку, чтобы выбрать поле объектной библиотеки Microsoft DAO 3.6.
DaO 3.6 также доступен на Windows XP Home Edition.
Чтобы закрыть диалоговое окно "Ссылки", нажмите кнопку ОК.
Вклеить следующий код в созданный модуль.
Код будет пытаться импортировать все таблицы и все запросы из поврежденной базы данных в текущую базу данных. Замените C:\My Documents\yourDatabase.mdb правильный путь и имя файла базы данных.
Чтобы запустить код, нажмите кнопку Run Sub/UserForm в меню Run.
Метод 3. Восстановление данных базы данных, если у вас нет исходной защищенной базы данных.
Если у вас нет копии исходной защищенной базы данных в исходном формате и вы уже пробовали стандартные методы устранения неполадок коррупции, попробуйте восстановить данные базы данных. Для этого выполните следующие действия:
Сделайте копию резервного копирования исходной базы данных.
Запуск Access 2000 или более поздней версии.
Access 2000, Access 2002 или Access 2003
- Щелкните кнопку Microsoft Office, нажмите кнопку Новая, щелкните Пустую базу данных, а затем нажмите кнопку Создать, чтобы создать новую пустую базу данных.
Access 2000, Access 2002 или Access 2003
- В меню Вставка выберите пункт Модуль. Начинается редактор Visual Basic Microsoft и создается новый модуль.
- На вкладке Создание щелкните вниз стрелку под Макроном и нажмите модуль. Начинается редактор Visual Basic Microsoft и создается новый модуль.
В меню Сервис выберите пункт Ссылки.
В списке Доступные ссылки найдите объектную библиотеку Microsoft DAO 3.6, а затем нажмите кнопку, чтобы выбрать поле объектной библиотеки Microsoft DAO 3.6.
Чтобы закрыть диалоговое окно "Ссылки", нажмите кнопку ОК.
Вклеить следующий код в созданный модуль.
Код будет пытаться импортировать все таблицы из поврежденной базы данных в базу данных резервного копирования. Замените переменные в таблице после шага 10 расположением файлов базы данных и параметрами пользователя.
В списке функций выберите BackupSecureDatabase.
Чтобы запустить код, нажмите кнопку Run Sub/UserForm в меню Run.
Статус
Корпорация Майкрософт подтвердила, что это проблема в продуктах Майкрософт, перечисленных в разделе "Применяется к".
Дополнительные сведения
Дополнительные сведения о устранении неполадок в базе данных Microsoft Access см. в следующей статье:
Кароче: база mdb, весом 380 мб (размер сжатой базы).
Как поломали: один ну очень умный дядя пытался открыть ее по сети, без одной необходимой библиотеки она открылась только с хорошим матерком, закрыв ее он начал ее копировать, а другой дядя в это время открывал ее же с локального компа, обломавшись и выяснив почему он стал ждать. Когда копирование закончилось и там и там база перестала открываться. Видимо первый умный дядя что-то успел натворить с ней, когда пытался открыть ее удаленно. Под открыть удаленно задесь понимается, что этот простой человек, просто запустил базу через общие папки в сетевом окружении. Вообщем стоит только отлучится и поломать смогут все. :(.
Сейчас: база открывается, но на все действия вылезает ошибка - В файле MAccess обнаружено повреждение. ну т.д. с предложением воспользоваться резервной копией. Есть правда исключения: можно открыть в конструкторе таблицы, но нельзя их открыть в таблично виде. Запросы открываются в конструкторе и при этом можно создать запрос по таблицам и он выведет всю информацию .Несколько форм открываются в конструкторе, но до VB кода не добраться.
Проьовал: на все попытки сжать/восстановить, /DECOMPILE /Repair, экспортировать/импортировать вываливается с указанной выше ошибкой.
JetComp, mdb_repair и их комбинации отрабатывают номана, но результат после них такой же, нет они правда базу немного сжали, но вот модули с кодом все равно не открываются.
AccessRecover 2.2 вообще сказал что с базой все ОК, типа сжимать ее не надо.
Задача: специфика базы такова, что абсолютно наплевать на табличные данные - постоянно закачиваются новые, взамен старых. Есть резервная копия базы месячной давности, за это время изменись только модули с кодом, в которых появились новые функции с динам. запросами и т.д.
То бишь, из этой поломанной базы самое главное извлечь VB модули.
Это добиться я не смог, единственное что, открыв файл mdb в текстовом редакторе, я смог найти некоторые нужные мне куски кода, но вытащить все содержимое модуля не смог, уже очень там все разбросано и исковеркано.
Спрашивается: можно ли еще что-нибудь сделать, что бы вытащить содержимое модулей или можно забросить эту идею и приступить к написанию заново недастающих кусков кода?
P.S. надеюсь никого не утомил, но хоть посмеятся можно. до сих пор не понимаю как эти чуваки умудрилсь т.о. поломать базу. Да.. дурное дело не хитрое.
нажимаем кнопку «Связь» и выбираем *.mdw файл.
5. Перезапускаем MS Access.
Как чинить поврежденный фаил
Не пытайтесь ремонтировать поврежденные формы, отчеты, макросы и модули . Перед выполнением восстановления, пожалуйста, убедитесь, что выполнили следующее условие :
1. Создайте резервную копию поврежденного файла базы данных (MDB).
2. Удалите файл с расширением LDB, если таковой имеется. Перед удалением этого файла необходимо закрыть соответствующий файл с расширением MDB.
Читайте также: