|
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
|
|||
---|---|---|---|
#18+
Винда XP SP-2, Офис ХР (без SP) Несколько Excel-отчётов создаются из Access (подряд, друг за другом). Ошибка - "плавающая": может неск. дней не появляться, а потом возникать неск.раз на дню. Определённого места (отчёта), где бы появлялась эта ошибка, - тоже нет, но, в основном, - ближе к последним отчётам. Окно с сообщением возникает в Excel, если нажать в нём "OK", то создание отчётов продолжается. Весь прикол в том, что отчёты только создаются и сохраняются в папке! В коде нет нигде команды Код: vbnet 1.
И что Excel пытается вывести на экран - непонятно... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 19:20 |
|
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
|
|||
---|---|---|---|
#18+
GDI-объекты все равно создаются, даже если приложение невидимо application.ScreenUpdating=False используется? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2014, 20:13 |
|
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
|
|||
---|---|---|---|
#18+
Shocker.ProGDI-объекты все равно создаются, даже если приложение невидимо application.ScreenUpdating=False используется?Нет! А как его использовать? В коде 1 процедура = 1 отчёт. В начале каждой процедуры создаётся объект Ёкселя, в конце = уничтожается. Это надо после строки: Код: vbnet 1.
добавить строку Код: vbnet 1.
А в конце кода, перед Код: vbnet 1.
надо вставить строку Код: vbnet 1.
Так? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2014, 14:55 |
|
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
|
|||
---|---|---|---|
#18+
_Вопрос?надо после строки: ... добавить строку ...Да. А в конце необязательно, т.к. объект Ёкселя все равно уничтожается. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2014, 15:03 |
|
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
|
|||
---|---|---|---|
#18+
добавил Код: vbnet 1.
по большому счёту ничего не изменилось - иногда всё же выскакивает сообщение о нехватке ресурсов. В коде в книгу листы добавляются: Код: vbnet 1.
Может ещё и перед(после?)этой строки добавлять ScreenUpdating = False? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2014, 17:39 |
|
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
|
|||
---|---|---|---|
#18+
вот опять: 4 цикла (по 12 отчётов в каждом) отработали нормально, а на пятом опять - "недостаточно системных ресурсов для вывода на экран" ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2014, 12:43 |
|
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
|
|||
---|---|---|---|
#18+
диспетчер задач - процессы - вид - выбрать столбцы - объекты GDI последи за изменением, может уловишь какую-то закономерность ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2014, 12:46 |
|
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
|
|||
---|---|---|---|
#18+
Shocker.Proдиспетчер задач - процессы - вид - выбрать столбцы - объекты GDI последи за изменением, может уловишь какую-то закономерность Добавил, наблюдаю... Правда слабо представляю что надо уловить: объекты GDI - это что-то с рисованием, вроде? Значение GDI для процессов Excell и Access: Access при запуске процесса: 107, к концу выполнения всей процедуры: 111 Excell при запуске процесса: 129, к концу выполнения всей процедуры: 165 Это при удачном завершении... При ошибке пока не знаю, надо ловить. ------------------------------------------------ А что эти цифры значат то? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2014, 13:37 |
|
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
|
|||
---|---|---|---|
#18+
упрощенно: под каждый маленький объект (рамки, кнопки, поля, менюшки и т.п.) создается одна штука (или несколько) таких объектов. передел, установленный виндами, если не ошибаюсь 10000 на приложение (или на процесс?) если приложение пытается запросить больше (например в результате утечки, неправильного цикла и т.п.), то возникает ошибка типа твоей. Это необязательно, это всего лишь мое предположение по поводу твоей ошибки. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2014, 13:41 |
|
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
|
|||
---|---|---|---|
#18+
Ага, значит надо отловить значение GDI для процесса Excel при появлении ошибки? Будем ждать... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2014, 14:04 |
|
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
|
|||
---|---|---|---|
#18+
А еще ошибка нехватки ресурсов может возникнуть при добавлении большого кол-ва листов с данными. Как такового конкретного ограничения на само кол-во листов нет. Кол-во листов ограничивается лишь размером доступной оперативной памяти. Тут многое зависит и от типа ОС(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 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2014, 14:16 |
|
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
|
|||
---|---|---|---|
#18+
The_Prist А еще ошибка нехватки ресурсов может возникнуть при добавлении большого кол-ва листов с данными. Excel 2002 официальный лимит - 128MB Все 12 создаваемых файлов у меня весят 7 Mb... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2014, 14:58 |
|
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
|
|||
---|---|---|---|
#18+
если много/часто используется память (создаются/удаляются объекты/строки/массивы/пр), то нужно хотя бы иногда вызвыать DoEvents. Именно в такие моменты Access высвобождает неиспользуемые ресурсы. В пользу этого говорит и симптом о "все нормально работает после нажатия ОК в диалоге". Попробуйте как вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2014, 23:25 |
|
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
|
|||
---|---|---|---|
#18+
У окна с сообщением в заголовке написано: " Microsoft Excell ", но в создаваемых отчётах нет кода. Накидать в Access DoEvents в каждом цикле , который заполняет строки отчёта (добавлений/удалений строк мало)? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2014, 09:53 |
|
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
|
|||
---|---|---|---|
#18+
Я не знаю, это всего лишь предположение, хотя когда разговор о глюках, то почти всегда есть только предположения. Сугубо из моих наблюдений: с целью повышения производительности VBA-кода Аксес не чистит память до тех пор, пока выполнение вашего кода не завершится, т.е. считается, что почистить память от более неиспользуемых объектов/строк/массивов лучше в момент, когда ваше приложение простаивает, стоит и ждет действий от пользователя, т.е. не исполняет ваш код, а просто обрабатывает оконные сообщения. Таким образом насильственный DoEvents заставляет систему обработать оконные сообщения и, если все сказанное выше верно (нигде это официально не описывается), то и почистить память. Мне это иногда помогает, поможет ли в вашем случае - не знаю. Попробуйте просто. Вставлять надо после кода, избавляющегося от объектов/строк/массивов, типа Set Object = Nothing и после выхода переменных из области видимости. В то же время нельзя переборщить - код станет выполняться значительно медленней. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2014, 11:11 |
|
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
|
|||
---|---|---|---|
#18+
не помогло ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2014, 16:11 |
|
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
|
|||
---|---|---|---|
#18+
_Вопрос?В коде в книгу листы добавляются: Код: vbnet 1.
Возможно, тут собака порылась. Есть известная проблема ошибки Excel при КОПИРОВАНИИ существующего листа, если оно происходит много раз: http://support.microsoft.com/kb/210684/ru Решение - периодически сохранять книгу. Попробуйте сохранять книгу после добавления каждого листа. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2014, 01:38 |
|
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
|
|||
---|---|---|---|
#18+
Но у меня нет копирования и вставки листов, полностью строка добавления выглядит так: Код: vbnet 1.
т.е: "добавить новый в конец книги" ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2014, 12:31 |
|
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
|
|||
---|---|---|---|
#18+
ноги могут расти оттуда же попробуйте сохранять/закрывать/открывать книгу, как рекомендуется на сайте производителя ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2014, 12:45 |
|
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
|
|||
---|---|---|---|
#18+
авторпопробуйте сохранять/закрывать/открывать книгу, как рекомендуется на сайте производителя В книге 12 листов, сейчас книга сохраняется в конце процедуры. т.е. теперь, перед каждым Код: vbnet 1.
надо сохранить книгу, закрыть, тут же открыть, добавить новый лист и т.д.?! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2014, 13:10 |
|
Что за хрень: "недостаточно системных ресурсов для полного вывода на экран" ?!!
|
|||
---|---|---|---|
#18+
В конце создания каждого из 12-и файлов я вызываю процедуру: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
Может в неё ещё что-то добавить? ---------------------------------------------------------------------------------------- Вчера запустил тест: в течении 10 часов, без остановки создавать и отсылать файлы... Результат: 540 файлов в почте т.е. 45 удачных циклов, на 46-м - кирдык... Сегодня решил тест повторить... Результат: на втором же цикле - сообщение о нехватке ресурсов... Вот зараза!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2014, 13:24 |
|
|
start [/forum/topic.php?fid=61&msg=38613476&tid=2174109]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 166ms |
0 / 0 |