Приложению microsoft access не удается сохранить форму или отчет
проверить Диспетчер задач показывает, что есть много свободной памяти. Закрытие других открытых программ не имеет значения.
это происходит спорадически и при разных обстоятельствах: иногда при сохранении дизайна формы или изменения кода VBA, иногда, когда несколько форм открыты и используются.
при попытке сохранить изменения дизайна, и эта ошибка возникает, объекты доступа повреждены и не могут быть восстановлены.
любые предложения о том, что может быть причиной этого, будут очень приветствоваться.
проект VBA в вашем интерфейсе, вероятно, поврежден. Вам нужно перестроить его с нуля, а затем использовать правильные методы кодирования доступа:
в параметрах VBE отключите компиляцию по требованию (см. статья Майкла Каплана о декомпиляции подробности почему).
в параметрах VBE включите требование объявления переменной.
в VBE настройте панель инструментов так, чтобы кнопка компиляции была легко доступный (он находится в меню Debug). Я также рекомендую добавить кнопку стека вызовов (из меню Вид), так как это удобно для отладки ошибок в режиме перерыва. Дело в том, чтобы сделать отладку и компиляцию как можно проще.
отныне при программировании компилируйте часто, через каждые две-три строки кода. Я, вероятно, компилирую свой проект 100 или более раз в день при кодировании.
периодически декомпилируйте свой проект и компактируйте и перекомпилируйте его. Это очистит любой crud, который накапливается во время регулярного развития.
эти методы гарантируют, что код в неповрежденном проекте остается в чистом состоянии по возможности. Он ничего не сделает для восстановления уже поврежденного проекта.
Что касается того, как перестроить проект, я думаю, что я бы пошел по радикальному пути экспорта всех объектов с приложением.SaveAsText и импорт их в новую пустую базу данных с приложением.LoadFromText. Это превосходит простой импорт из существующего поврежденного интерфейса, поскольку импорт может импортировать поврежденные структуры, которые не переживут цикл SaveAsText/LoadFromText.
I программа ежедневно в доступе, работает с нетривиальными приложениями, которые используют много кода, включая множество автономных модулей класса. Я не потерял объект для коррупции кода более 5 лет, и это было еще в тот день, когда я все еще использовал A97.
наткнувшись на этот мой старый пост, и видя, что у него был изрядный интерес, я подумал, что, может быть, обновление будет в порядке?
Итак, 2 года вниз по дорожке, делая много работы приложения 2007 года, а также более старые приложения 2003 (и даже '97), я нахожу, что 2007 менее подвержен действительно неприятным сбоям, чем 2003 - где определения объектов доступа (формы и отчеты esp.) будет легко поврежден.
Я по-прежнему следую предложениям 1-6 (выше) Дэвида-W-Fenton религиозно, хотя, плюс использование приложения.SaveAsText (см. предложение Тони Toews и ссылку выше).
в эти дни, будь то 97, 2003 или 2007 я работаю, если доступ дает любой намек на "странный | авария | бросая непонятные ошибки" etc, я делаю следующее:
- сразу закрыть приложение Access
- резервное копирование файла mdb / accdb
- откройте приложение удерживая [Shift] , так что ничего не работает
- экспорт всех объектов в виде текста с помощью приложения.SaveAsText (как еще одна резервная копия)
- закройте и снова откройте приложение с помощью переключателя / decompile
- перекомпилировать код VBA
- сделайте компакт / ремонт.
Это не решает все, но это значительно уменьшает количество искажений объектов доступа от того, что я могу наблюдать.
Я работала в магазине много лет, что б доступ к их платформе. Приложение в конечном итоге стало настолько большим, что оно начало поражать внутреннее ограничение памяти Access 2003. Они начали испытывать ту же самую проблему, что и вы. Как вы заметили, нет никаких внешних признаков проблем с памятью, когда это произойдет.
компания долго говорила с Microsoft о проблеме, и я считаю, что Microsoft в конце концов снабдил их заплаткой. Таким образом, вы можете поговорить с Microsoft об этом, если это звучит как аналогичная ситуация с тем, что вы испытываете, поскольку они могут предоставить вам тот же патч.
в конечном счете долгосрочное решение состоит в том, чтобы разбить приложение на более мелкие части. Переход на Access 2007 не помог; на самом деле, это ухудшило ситуацию, потому что Access 2007 имеет больше движущихся частей.
быстрое решение; гарантированный для работы:
открыть VBA ( Alt-F11 ) В окне непосредственно введите следующее:
вот и все :) надеюсь, это поможет другим!
вы работаете над этим MDB по сети? Это единственное, что я могу придумать, что может вызвать эту проблему.
поскольку я знаю, что это либо формы, либо отчеты, которые, скорее всего, будут повреждены, я создал новый mdb, и только импортированные таблицы (прикрепленные), запросы, скрипты (только один), модули и меню. Затем я использовал LoadFromText для импорта форм и отчетов через функцию, а затем сделал обычную декомпиляцию/компиляцию и компакт/ремонт и т. д.
до сих пор, прикоснитесь к дереву, у меня не было другой аварии в течение нескольких дней, поэтому я, вероятно, буду придерживаться этого метода восстановления.
большое спасибо всем за свои предложения.
Я сталкивался с этой проблемой много раз и, наконец, нашел решение, которое сработало. Я не знаю, что вызывает проблему, но я знаю, как ее решить.
обычно эта ошибка возникает при открытии формы. Что вам нужно сделать, это полностью воссоздать эту форму. Самый простой способ сделать это-сначала экспортировать форму в текстовый файл с помощью приложения недокументированной функции.SaveAsText. Затем вы удаляете форму из своей базы данных и повторно загружаете ее Приложение.LoadFromText.
Office 365 ProPlus переименован в Майкрософт 365 корпоративные приложения. Для получения дополнительной информации об этом изменении прочитайте этот блог.
Исходный номер КБ: 283228
Расширенный: требуется экспертное кодирование, интероперабельность и многоуровневые навыки. Эта статья применяется только к базе данных Microsoft Access (.mdb и .accdb).
Симптомы
В настоящее время у вас нет эксклюзивного доступа к базе данных. Если приступить к внесению изменений, вы не сможете сохранить их позже.
В настоящее время у вас нет эксклюзивного доступа к базе данных. Изменения в дизайне не будут сохранены.
Ссылка на эту страницу доступа к данным не может быть создана, так как база данных не может быть заблокирована исключительно.
Причина
- Вы пытаетесь открыть форму, отчет, макрос, модуль или панель командной панели в представлении Design.
- Вы пытаетесь сохранить изменения в дизайне одного из этих типов объектов или новой ссылки на страницу, в то время как другие пользователи имеют одну и ту же базу данных.
Чтобы сохранить изменения в дизайне для этих типов объектов, Access должен иметь возможность получить эксклюзивный замок в базе данных.
Решение
В ситуациях, когда несколько разработчиков одновременно проектировать приложение Access, необходимо реализовать управление исходным кодом с помощью надстройки Microsoft Visual SourceSafe microsoft Access. Или необходимо распространять локальные рабочие копии базы данных каждому разработчику. Последует обсуждение каждого из этих вариантов.
Реализация управления исходным кодом
Программа Microsoft Access Visual SourceSafe Add-In позволяет поставить приложение Access под управление исходным кодом в стадии разработки. Если вы ставите приложение под управление исходным кодом, это позволяет отслеживать и хранить изменения, внесенные в приложение с течением времени. С помощью microsoft Visual SourceSafe вы можете просмотреть историю объекта, а затем вернуться к более ранним версиям объекта. Вы можете проверить объекты в приложении Microsoft Access, изменить их или создать новые объекты в локальной копии, а затем проверить их обратно в основную базу данных под управлением исходных кодов. Microsoft Access Visual SourceSafe Add-In с Microsoft Office XP Developer. Чтобы использовать надстройки Microsoft Access Visual SourceSafe, необходимо также отдельно установить microsoft Visual SourceSafe, которая также доступна Microsoft Office XP Developer.
Использование отдельных рабочих баз данных
Еще один вариант, который можно реализовать, — хранить мастер-копию приложения базы данных в централизованном расположении, а затем использовать отдельные рабочие копии базы данных на компьютере каждого разработчика. Каждый разработчик будет разрабатывать свою часть приложения в локальной рабочей копии базы данных. Если разработчик хочет внести изменения в объект в приложении базы данных, он импортирует объект из базы данных в локализованную рабочую базу данных. Затем разработчик введет необходимые изменения в объект в локальной рабочей базе данных и сохранит объект. Когда разработчик готов внести изменения в базовую базу данных, он экспортирует объект в базовую базу данных, переописав исходный объект.
Один из недостатков использования этого подхода заключается в том, что нет способа определить, работают ли одновременно несколько разработчиков над одним и тем же объектом локально. Когда разработчик экспортирует объект в базовую базу данных, разработчик может не знаком переписать изменения, внесенные другим разработчиком в базовую базу данных.
Дополнительные сведения
Чтобы сохранить изменения конструкции для объектов, определенных для Access, таких как формы, отчеты, новые ссылки на страницы, макрос, модули и командные панели, Access 2002 должен иметь возможность заблокировать базу данных исключительно во время операции Сохранить. Таблицы, запросы и отношения не подпадают под это ограничение, так как они являются объектами Microsoft Jet. Microsoft использует это требование с Access 2002 по нескольким причинам:
- Он обеспечивает согласованность с другими Visual Basic клиентских приложений среды.
- Он останавливает зависимость от двигателя базы данных Jet.
- Это повышает стабильность объектов, определенных для Access.
Обеспечивает согласованность с другими Visual Basic клиентских приложений среды
Так как Access 2002 Visual Basic средой, модель сохранения, используемая Microsoft Access, должна соответствовать другим приложениям, Visual Basic среде. Среда Visual Basic позволяет только исключительное редактирование и сохранение Visual Basic проектов, не подконтрольных исходным кодам. Это относится к Visual Basic 6.0, а также всем Office приложениям, Visual Basic среде.
Останавливает зависимость от двигателя базы данных Jet
Access предоставляет возможность создавать файлы проекта Microsoft Access (.adp), а также базы данных Microsoft Access (.mdb). С помощью проекта Access разработчики могут использовать Microsoft SQL Server в качестве другого двигателя базы данных для Microsoft Jet. В прошлом все объекты Access (формы, отчеты, макрос, модули и командные панели) зависели от двигателя базы данных Jet для хранения. Эти объекты хранились в таблицах систем, определенных для Access, в базе данных Microsoft Jet. Так как для Access можно использовать Microsoft SQL Server в качестве альтернативы Microsoft Jet, Корпорации Майкрософт пришлось разработать механизм хранения для объектов, определенных Access, которые не зависят от двигателя базы данных Jet.
Повышает стабильность объектов, определенных для access
Модель хранения проектов повышает стабильность объектов, определенных для Access, и Visual Basic проекта. Visual Basic для приложений никогда не позволяло много пользователей изменять проекты Visual Basic без управления исходным кодом. Microsoft Access 95 и Microsoft Access 97 могли обойти это ограничение, скрывая изменения проектов, внесенные в среде с несколькими Visual Basic для приложений, а затем совмеская их в проект позже. Однако это может повлиять на стабильность проекта Visual Basic. Поэтому microsoft Access требует исключительного блокировки при проектировании объектов, определенных для Access, чтобы убедиться, что в проекте имеется только один редактор.
Редактирование объектов Access в среде с несколькими пользователями
Поскольку пользователи могут открывать базу данных для эксклюзивного или общего использования, поведение сохранения, выставленное Access, зависит от того, как пользователь открыл базу данных, и от того, имеют ли в настоящее время к ней доступ несколько пользователей.
Если разработчик открывает базу данных для эксклюзивного использования, разработчик может сохранить дизайн любого объекта, определенного для Access, при условии, что разработчик может открыть базу данных для доступа к чтениям и записи и имеет правильные разрешения на изменение дизайна объекта.
Если пользователь открывает базу данных для общего использования, пользователь может сохранить дизайн любого объекта, определенного Для доступа, при условии, что пользователь может открыть базу данных для чтения и записи доступа, имеет правильные разрешения на изменение дизайна объекта, и Access может получить эксклюзивный замок в базе данных.
Продвижение блокировки
Чтобы убедиться, что использование базы данных является эксклюзивным, Access использует функцию управления подключением двигателя базы данных Jet для продвижения общего блокировки пользователя до эксклюзивного. Доступ пытается продвигать общий блокировку в исключительный замок, как только пользователь откроет форму, отчет, макрос или панель команд в представлении Design. Access пытается заблокировать продвижение в это время, чтобы предотвратить сценарий, в котором пользователь сделал несколько изменений в дизайне, чтобы позже обнаружить, что пользователь не может сохранить их, так как Access не может получить эксклюзивный блокировку. При попытке продвижения блокировки, как только пользователь открывает объект в представлении Design, Access может предупредить пользователя, если он не может получить эксклюзивный блокировку до того, как пользователь включит какие-либо изменения в конструкцию. При открытии модуля в представлении Design доступ не будет пытаться заблокировать; однако, он будет пытаться заблокировать продвижение, как только пользователь редактирует любой модуль в базе данных.
Доступ сохраняет эксклюзивный блокировку, пока пользователь не сохранит или не отбрасает все грязные объекты и другие объекты не будут открыты в представлении Design. После этого Access возвращает блокировку в общий доступ, если база данных изначально была открыта для общего использования.
В настоящее время у вас нет эксклюзивного доступа к базе данных. Если приступить к внесению изменений, вы не сможете сохранить их позже.
В настоящее время у вас нет эксклюзивного доступа к базе данных. Изменения в дизайне не будут сохранены.
Если пользователь пытается закрыть грязный объект и сохранить изменения, Access затем подсказает пользователю возможность закрыть объект и отказаться от внесенных в него изменений в дизайне или с возможностью оставить его открытым и невскрымым.
Действия по воспроизведению поведения
Запустите два экземпляра Microsoft Access на одном компьютере.
Откройте пример базы данных Northwind.mdb в обоих экземплярах.
В первом экземпляре Microsoft Access откройте форму Клиенты в представлении Design.
В настоящее время у вас нет эксклюзивного доступа к базе данных. Если приступить к внесению изменений, вы не сможете сохранить их позже.
Форма открывается в представлении Design.
Добавьте в форму управление текстовым полем.
В меню Файл выберите пункт Сохранить.
В настоящее время у вас нет эксклюзивного доступа к базе данных. Изменения в дизайне не будут сохранены.
В этой статье представлена ошибка с номером Ошибка 6045, известная как Ошибка Microsoft Access 6045, описанная как Microsoft Office Access не может сохранить форму или отчет, поскольку он отображает символы с языка, который не может быть сохранен в текущем языковом стандарте системы. @ Переключите языковой стандарт системы на язык формы или отчета, а затем повторите попытку. @@ 1 @ 2 @ 5054 @ 1.
Информация об ошибке
Имя ошибки: Ошибка Microsoft Access 6045
Номер ошибки: Ошибка 6045
Описание: Microsoft Office Access не может сохранить форму или отчет, поскольку он отображает символы с языка, который не может быть сохранен в текущем языковом стандарте системы. @ Переключите языковой стандарт системы на язык формы или отчета, а затем повторите попытку. @@ 1 @ 2 @ 5054 @ 1.
Программное обеспечение: Microsoft Access
Разработчик: Microsoft
Этот инструмент исправления может устранить такие распространенные компьютерные ошибки, как BSODs, зависание системы и сбои. Он может заменить отсутствующие файлы операционной системы и библиотеки DLL, удалить вредоносное ПО и устранить вызванные им повреждения, а также оптимизировать ваш компьютер для максимальной производительности.
О программе Runtime Ошибка 6045
Время выполнения Ошибка 6045 происходит, когда Microsoft Access дает сбой или падает во время запуска, отсюда и название. Это не обязательно означает, что код был каким-то образом поврежден, просто он не сработал во время выполнения. Такая ошибка появляется на экране в виде раздражающего уведомления, если ее не устранить. Вот симптомы, причины и способы устранения проблемы.
Определения (Бета)
Здесь мы приводим некоторые определения слов, содержащихся в вашей ошибке, в попытке помочь вам понять вашу проблему. Эта работа продолжается, поэтому иногда мы можем неправильно определить слово, так что не стесняйтесь пропустить этот раздел!
- Access - НЕ ИСПОЛЬЗУЙТЕ этот тег для Microsoft Access, используйте вместо него [ms-access]
- Locale - в вычислениях, языковой стандарт - это набор параметров, определяющих язык, страну и любые особые варианты предпочтений, которые пользователь хочет видеть в своем пользовательском интерфейсе.
- Отчет - отчет содержит обобщенную информацию из источник данных, обычно в удобном для конечного пользователя формате, таком как PDF или Excel, хотя также существуют проприетарные инструменты отчетности, обычно со встроенными инструментами дизайна.
- Сохранить - Для хранения данных на компьютере или запоминающем устройстве.
- Система - система может относиться к набору взаимозависимых компонентов; Инфраструктура низкого уровня, такая как операционная система с точки зрения высокого языка или объект или функция для доступа к предыдущему
- Access - Microsoft Access, также известный как Microsoft Office Access, система управления базами данных от Microsoft, которая обычно сочетает в себе реляционное ядро СУБД Microsoft JetACE с графическим пользовательским интерфейсом и инструментами разработки программного обеспечения.
- Символы - обозначает символ, представляющий букву или число
- Switch . В компьютерном программировании оператор switch, case, select или inspect является типом механизма управления выбором.
- Доступ Microsoft - Microsoft Access, также известный как Microsoft Office Access, представляет собой систему управления базами данных от Microsoft, которая обычно сочетает в себе реляционный Microsoft JetACE Database Engine с графическим пользовательским интерфейсом и инструментами разработки программного обеспечения.
- Форма . Форма - это, по сути, контейнер, который можно использовать для хранения любого количества любого подмножества sev. различные типы данных
- Microsoft office . Microsoft Office - это закрытый набор настольных приложений, предназначенный для использования специалистами по умственным трудам на компьютерах Windows и Macintosh.
Симптомы Ошибка 6045 - Ошибка Microsoft Access 6045
Возможны случаи удаления файлов или появления новых файлов. Хотя этот симптом в основном связан с заражением вирусом, его можно отнести к симптомам ошибки времени выполнения, поскольку заражение вирусом является одной из причин ошибки времени выполнения. Пользователь также может столкнуться с внезапным падением скорости интернет-соединения, но, опять же, это не всегда так.
(Только для примера)
Причины Ошибка Microsoft Access 6045 - Ошибка 6045
При разработке программного обеспечения программисты составляют код, предвидя возникновение ошибок. Однако идеальных проектов не бывает, поскольку ошибки можно ожидать даже при самом лучшем дизайне программы. Глюки могут произойти во время выполнения программы, если определенная ошибка не была обнаружена и устранена во время проектирования и тестирования.
Ошибки во время выполнения обычно вызваны несовместимостью программ, запущенных в одно и то же время. Они также могут возникать из-за проблем с памятью, плохого графического драйвера или заражения вирусом. Каким бы ни был случай, проблему необходимо решить немедленно, чтобы избежать дальнейших проблем. Ниже приведены способы устранения ошибки.
Методы исправления
Ошибки времени выполнения могут быть раздражающими и постоянными, но это не совсем безнадежно, существует возможность ремонта. Вот способы сделать это.
Если метод ремонта вам подошел, пожалуйста, нажмите кнопку upvote слева от ответа, это позволит другим пользователям узнать, какой метод ремонта на данный момент работает лучше всего.
База данных Microsoft Access может быть сохранена в виде MDE-файла.
Для этого необходимо выбрать в главном меню пункт "Сервис" - "Служебные программы" - "Создать MDE- файл ", далее задать имя файла .
При сохранении базы в формате MDE будут скомпилированы все программные модули, удалены все исходные тексты программ, будет сжата. Программы Visual Basic будут по -прежнему выполняться, но их нельзя будет просматривать или изменять. Из-за удаления исходных кодов уменьшится размер базы данных , т.е. будет оптимизировано использование памяти, что повысит быстродействие базы данных.
Работа с базой данных не изменится. Пользователи по -прежнему смогут обновлять данные, запускать экранные формы, формировать отчеты.
Возможны модификация структуры таблиц, создание новых таблиц с использованием Конструктора и Мастера, изменение схемы базы данных с добавлением и удалением таблиц и связей между ними.
Невозможными становятся следующие действия, связанные с созданием компонентов приложения для работы с базой данных:
- Создание, просмотр, изменение форм, отчетов, модулей с использованием Конструкторов и Мастеров.
- Создание и изменение программных модулей.
- Создание, удаление и изменение ссылок на библиотеки объектов или базы данных.
На рис. 7.35. показана страница доступа к данным "Оценки студентов", разработанная в системе Microsoft Access с помощью Конструктора. Для переходов между записями, а также для добавления, удаления, сохранения, сортировки и отбора записей и для вызова справки предназначен стандартный набор кнопок.
В Конструкторе страница доступа состоит из групп, которые подразделяются на разделы ( Section ): подпись, верхний колонтитул , нижний колонтитул , кнопки перехода (см. рис. 7.36.).
Каждый уровень группировки на странице доступа к данным имеет источник записей. Имя источника записей отображается в строке заголовка каждого раздела для данного уровня группировки.
На страницах не допускается изменение полей группировки и вычисляемых полей. Если не удается установить курсор ни в одно поле на странице, страница не поддерживает изменение записей .
Проект Microsoft Access (ADP)
Проект Microsoft Access (*. adp ) является файлом данных Microsoft Access, обеспечивающим эффективную работу с базами данных Microsoft SQL Server . Используя проект Microsoft Access, можно создавать приложения в архитектуре "клиент/ сервер " так же легко, как приложения файлового сервера.
Приложение в архитектуре "клиент/ сервер " может быть традиционным решением, основанным на формах и отчетах , или решением на базе Интернета, использующим страницы доступа к данным .
Проект Microsoft Access можно подключить к удаленной базе данных Microsoft SQL Server , локальной базе данных Microsoft SQL Server или к локальной установке Microsoft SQL Server 2000 Desktop Engine ( MSDE ).
Файл проекта не содержит данные или объекты определения данных, такие как таблицы и представления.
В проекте можно создавать и использовать для работы с данными формы, отчеты , запросы , модули, страницы доступа к данным .
Краткие сведения о работе с проектом Microsoft Access будут даны в следующей лекции, которая посвящена системе Microsoft SQL Server .
Читайте также: