Доступ MS: нет достаточной памяти для выполнения этой операции

Дилемма, использовать ли платформу или не довольно распространен в современном дневном сценарии разработки программного обеспечения.

, Что важно для понимания, то, что каждая платформа или подход имеют свои за и против - например, по нашему опыту, мы нашли, что ORM полезен при контакте с транзакциями, т.е. вставьте/обновите/удалите операции - но когда дело доходит до данных выборки со сложными результатами становится важно оценить производительность и эффективность инструмента ORM.

Также важно понять, что не обязательно выбрать платформу или подход и реализовать все в этом. Под чем мы подразумеваем, который является, у нас может быть соединение ORM и собственного языка запросов. Много платформ ORM дают точки расширения плагину в собственном SQL. Мы должны попробовать не к по использованию платформа или подход. Мы можем объединить определенные платформы или подходы и идти с соответствующим решением.

можно использовать ORM когда дело доходит до вставки, updation, удаления, управления версиями с высоким уровнем параллелизма, и можно использовать Собственный компонент SQL для поколения отчета и длинного списка

10
задан Robert Harvey 15 October 2009 в 22:47
поделиться

5 ответов

Поскольку я знаю, что это либо формы, либо отчеты, которые, скорее всего, будут повреждены, я создал новый mdb и только импортированные таблицы (прилагаются), запросы, сценарии (только один), модули и меню . Затем я использовал LoadFromText для импорта форм и отчетов с помощью функции, а затем выполнил обычную декомпиляцию / компиляцию, сжатие / восстановление и т. Д.

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

Большое спасибо всем за ваши предложения.

1
ответ дан 3 December 2019 в 17:20
поделиться

Это также сообщение об ошибке по умолчанию, когда Access не знает, в чем на самом деле проблема. Теперь, если ваш MDB особенно велик, скажем, более 800 форм и отчетов с модулями, тогда да, MDB может быть слишком большим, хотя это давало вам сообщение, когда вы переходили к созданию MDE. ACC2000: Сообщение об ошибке «Microsoft Access не удалось создать базу данных MDE»

У меня такое иногда случалось. И мои нынешние МБР не такие уж большие. Обратите внимание, что сжатие и восстановление не обнаруживают ошибок в объектах, кроме таблиц, индексов или отношений. Таким образом, импорт в другой MDB - единственный способ исправить эти ошибки.

Вы работаете над этим MDB по сети? Это единственное, о чем я могу думать, что могло бы вызвать эту проблему.

1
ответ дан 3 December 2019 в 17:20
поделиться

Я сталкивался с этой проблемой много раз и, наконец, нашел решение, которое сработало. Я не знаю, что вызывает проблему, но я знаю, как ее решить.

Обычно ошибка возникает при открытии формы. Что вам нужно сделать, так это полностью воссоздать эту форму. Самый простой способ сделать это - сначала экспортировать форму в текстовый файл с помощью недокументированной функции Application.SaveAsText. Затем вы удаляете форму из своей базы данных и повторно загружаете ее с помощью Application.LoadFromText.

0
ответ дан 3 December 2019 в 17:20
поделиться

О боже.

Я много лет работал в магазине, который использовал Access в качестве платформы выбора. В конечном итоге приложение стало настолько большим, что начало сталкиваться с ограничением внутренней памяти Access 2003. Они начали испытывать ту же проблему, что и вы. Как вы заметили, когда это происходит, нет никаких внешних признаков проблем с памятью.

Компания долго обсуждала проблему с Microsoft, и я считаю, что Microsoft в конечном итоге предоставила им исправление. Поэтому вы можете поговорить с Microsoft об этом, если это похоже на ситуацию, аналогичную той, с которой вы столкнулись, поскольку они могут предоставить вам тот же патч.

В конечном итоге долгосрочным решением будет разбить приложение на более мелкие части. Переход на Access 2007 не помог; на самом деле,

4
ответ дан 3 December 2019 в 17:20
поделиться

Вероятно, поврежден проект VBA во внешнем интерфейсе. Вам нужно перестроить его с нуля, а затем использовать правильные методы кодирования Access:

  1. в параметрах VBE отключите КОМПИЛЯЦИЯ ПО ЗАПРОСУ (см. статью Майкла Каплана о DECOMPILE , чтобы узнать, почему).

  2. в VBE, включите REQUIRE VARIABLE DECLARATION.

  3. в VBE настройте панель инструментов так, чтобы кнопка COMPILE была легко доступна (она находится в меню Debug). Я также рекомендую добавить кнопку CALL STACK (из меню VIEW), так как она удобна для отладки ошибок в режиме прерывания. Дело здесь в том, чтобы максимально упростить отладку и компиляцию.

  4. настроив среду, просмотрите все модули в недавно восстановленном проекте и добавьте OPTION EXPLICIT в начало каждого модуля, в котором он отсутствует. Затем скомпилируйте. Вы' Я быстро обнаружу, где у вас неправильный код, и вам нужно будет его исправить.

  5. с этого момента при программировании часто компилируйте после каждых двух или трех строк кода. Я, вероятно, компилирую свой проект 100 или более раз в день при кодировании.

  6. периодически декомпилирую ваш проект, сжимаю и перекомпилирую его. Это позволит очистить весь мусор, который накапливается во время регулярной разработки.

Эти методы гарантируют, что код в некоррумпированном проекте остается в максимально чистом состоянии. Он ничего не сделает для восстановления уже поврежденного проекта.

Что касается того, как перестроить проект, я думаю, что я бы пошел радикальным путем экспорта всех объектов с помощью Application.SaveAsText и импорта их в новую пустую базу данных с помощью Application.LoadFromText. Это превосходит простой импорт из существующего поврежденного внешнего интерфейса, поскольку импорт может импортировать поврежденные структуры, которые не выдержат цикла SaveAsText / LoadFromText.

Я ежедневно программирую в Access, работая с нетривиальными приложениями, использующими много кода , включая множество автономных модулей класса. Я не терял ни одного объекта повреждения кода более 5 лет, и это было в те дни, когда я все еще использовал A97.

9
ответ дан 3 December 2019 в 17:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: