powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
21 сообщений из 21, страница 1 из 1
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
    #38604751
_Вопрос?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Винда XP SP-2, Офис ХР (без SP)
Несколько Excel-отчётов создаются из Access (подряд, друг за другом).
Ошибка - "плавающая": может неск. дней не появляться, а потом возникать неск.раз на дню.
Определённого места (отчёта), где бы появлялась эта ошибка, - тоже нет, но, в основном, - ближе к последним отчётам.
Окно с сообщением возникает в Excel, если нажать в нём "OK", то создание отчётов продолжается.

Весь прикол в том, что отчёты только создаются и сохраняются в папке!
В коде нет нигде команды
Код: vbnet
1.
....Visible = True


И что Excel пытается вывести на экран - непонятно...
...
Рейтинг: 0 / 0
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
    #38604802
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GDI-объекты все равно создаются, даже если приложение невидимо
application.ScreenUpdating=False используется?
...
Рейтинг: 0 / 0
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
    #38605559
_Вопрос?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProGDI-объекты все равно создаются, даже если приложение невидимо
application.ScreenUpdating=False используется?Нет! А как его использовать?
В коде 1 процедура = 1 отчёт. В начале каждой процедуры создаётся объект Ёкселя, в конце = уничтожается. Это надо после строки:
Код: vbnet
1.
Set xlsApp = CreateObject("Excel.Application")

добавить строку
Код: vbnet
1.
xlsApp.ScreenUpdating = False


А в конце кода, перед
Код: vbnet
1.
Set xlsApp = Nothing

надо вставить строку
Код: vbnet
1.
xlsApp.ScreenUpdating = True

Так?
...
Рейтинг: 0 / 0
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
    #38605571
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Вопрос?надо после строки: ... добавить строку ...Да. А в конце необязательно, т.к. объект Ёкселя все равно уничтожается.
...
Рейтинг: 0 / 0
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
    #38605717
_Вопрос?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добавил
Код: vbnet
1.
.ScreenUpdating = False

по большому счёту ничего не изменилось - иногда всё же выскакивает сообщение о нехватке ресурсов.
В коде в книгу листы добавляются:
Код: vbnet
1.
Set xlsSheet = xlsBook.sheets.Add...

Может ещё и перед(после?)этой строки добавлять ScreenUpdating = False?
...
Рейтинг: 0 / 0
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
    #38606033
_Вопрос?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот опять: 4 цикла (по 12 отчётов в каждом) отработали нормально, а на пятом опять - "недостаточно системных ресурсов для вывода на экран"
...
Рейтинг: 0 / 0
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
    #38606037
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
диспетчер задач - процессы - вид - выбрать столбцы - объекты GDI

последи за изменением, может уловишь какую-то закономерность
...
Рейтинг: 0 / 0
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
    #38606067
_Вопрос?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proдиспетчер задач - процессы - вид - выбрать столбцы - объекты GDI

последи за изменением, может уловишь какую-то закономерность
Добавил, наблюдаю...
Правда слабо представляю что надо уловить: объекты GDI - это что-то с рисованием, вроде?
Значение GDI для процессов Excell и Access:
Access при запуске процесса: 107, к концу выполнения всей процедуры: 111
Excell при запуске процесса: 129, к концу выполнения всей процедуры: 165
Это при удачном завершении...
При ошибке пока не знаю, надо ловить.
------------------------------------------------
А что эти цифры значат то?
...
Рейтинг: 0 / 0
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
    #38606072
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
упрощенно: под каждый маленький объект (рамки, кнопки, поля, менюшки и т.п.) создается одна штука (или несколько) таких объектов.
передел, установленный виндами, если не ошибаюсь 10000 на приложение (или на процесс?)
если приложение пытается запросить больше (например в результате утечки, неправильного цикла и т.п.), то возникает ошибка типа твоей.

Это необязательно, это всего лишь мое предположение по поводу твоей ошибки.
...
Рейтинг: 0 / 0
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
    #38606076
_Вопрос?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ага, значит надо отловить значение GDI для процесса Excel при появлении ошибки?
Будем ждать...
...
Рейтинг: 0 / 0
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
    #38606083
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще ошибка нехватки ресурсов может возникнуть при добавлении большого кол-ва листов с данными. Как такового конкретного ограничения на само кол-во листов нет. Кол-во листов ограничивается лишь размером доступной оперативной памяти. Тут многое зависит и от типа ОС(32бит/64бит) и от версии Excel. Вот кратко о лимитах на размер книги:
Excel 5: 16 MB
Excel 95, Excel 97, 2000 официальный лимит - 64MB
Excel 2002 официальный лимит - 128MB
Excel 2003 официальный лимит - 1GB
Excel 2007 официальный лимит - 2GB

С Excel 2010 несколько сложнее, т.к. он выпускается в двух версиях: 64бит и 32бит.
Для 32-бит - 2GB(как и у Excel 2007), а вот для 64-бит предела как такового нет (хотя вроде как упоминается цифра в 8 терабайт).

Подробнее можно почитать на зарубежных сайтах(в справке такой информации не видел, эту информацию где-то когда-то вычитал), если поискать в поисковике что-то вроде: Memory limits by Excel
...
Рейтинг: 0 / 0
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
    #38606099
_Вопрос?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist А еще ошибка нехватки ресурсов может возникнуть при добавлении большого кол-ва листов с данными.
Excel 2002 официальный лимит - 128MB
Все 12 создаваемых файлов у меня весят 7 Mb...
...
Рейтинг: 0 / 0
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
    #38611896
DoEvents
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если много/часто используется память (создаются/удаляются объекты/строки/массивы/пр), то нужно хотя бы иногда вызвыать DoEvents. Именно в такие моменты Access высвобождает неиспользуемые ресурсы. В пользу этого говорит и симптом о "все нормально работает после нажатия ОК в диалоге".

Попробуйте как вариант.
...
Рейтинг: 0 / 0
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
    #38612025
_Вопрос?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У окна с сообщением в заголовке написано: " Microsoft Excell ", но в создаваемых отчётах нет кода.
Накидать в Access DoEvents в каждом цикле , который заполняет строки отчёта (добавлений/удалений строк мало)?
...
Рейтинг: 0 / 0
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
    #38612115
DoEvents
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не знаю, это всего лишь предположение, хотя когда разговор о глюках, то почти всегда есть только предположения.

Сугубо из моих наблюдений: с целью повышения производительности VBA-кода Аксес не чистит память до тех пор, пока выполнение вашего кода не завершится, т.е. считается, что почистить память от более неиспользуемых объектов/строк/массивов лучше в момент, когда ваше приложение простаивает, стоит и ждет действий от пользователя, т.е. не исполняет ваш код, а просто обрабатывает оконные сообщения. Таким образом насильственный DoEvents заставляет систему обработать оконные сообщения и, если все сказанное выше верно (нигде это официально не описывается), то и почистить память.

Мне это иногда помогает, поможет ли в вашем случае - не знаю. Попробуйте просто. Вставлять надо после кода, избавляющегося от объектов/строк/массивов, типа Set Object = Nothing и после выхода переменных из области видимости. В то же время нельзя переборщить - код станет выполняться значительно медленней.
...
Рейтинг: 0 / 0
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
    #38613170
_Вопрос?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не помогло
...
Рейтинг: 0 / 0
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
    #38613361
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Вопрос?В коде в книгу листы добавляются:
Код: vbnet
1.
Set xlsSheet = xlsBook.sheets.Add...

Возможно, тут собака порылась. Есть известная проблема ошибки Excel при КОПИРОВАНИИ существующего листа, если оно происходит много раз:
http://support.microsoft.com/kb/210684/ru
Решение - периодически сохранять книгу.
Попробуйте сохранять книгу после добавления каждого листа.
...
Рейтинг: 0 / 0
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
    #38613466
_Вопрос?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но у меня нет копирования и вставки листов, полностью строка добавления выглядит так:
Код: vbnet
1.
Set xlsSheet = xlsBook.sheets.Add(After:=xlsBook.Worksheets(xlsBook.Worksheets.Count))


т.е: "добавить новый в конец книги"
...
Рейтинг: 0 / 0
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
    #38613476
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ноги могут расти оттуда же
попробуйте сохранять/закрывать/открывать книгу, как рекомендуется на сайте производителя
...
Рейтинг: 0 / 0
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
    #38613485
_Вопрос?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторпопробуйте сохранять/закрывать/открывать книгу, как рекомендуется на сайте производителя
В книге 12 листов, сейчас книга сохраняется в конце процедуры.
т.е. теперь, перед каждым
Код: vbnet
1.
Set xlsSheet = xlsBook.sheets.Add...

надо сохранить книгу, закрыть, тут же открыть, добавить новый лист и т.д.?!
...
Рейтинг: 0 / 0
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
    #38613491
_Вопрос?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В конце создания каждого из 12-и файлов я вызываю процедуру:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Public Sub sbExcelNothing
xlsApp.Quit
Set xlsSheet = Nothing
Set xlsBook = Nothing
Set xlsApp = Nothing
DoEvents
End Sub

Может в неё ещё что-то добавить?
----------------------------------------------------------------------------------------
Вчера запустил тест: в течении 10 часов, без остановки создавать и отсылать файлы...
Результат: 540 файлов в почте т.е. 45 удачных циклов, на 46-м - кирдык...
Сегодня решил тест повторить...
Результат: на втором же цикле - сообщение о нехватке ресурсов...
Вот зараза!!!
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]