Недостаточно памяти с использованием .Refre sh BackGroudQuery: = False - PullRequest
0 голосов
/ 09 июля 2020

У меня такой же код, который потребляет в 3 раза больше памяти в одном файле по сравнению с другим файлом. Первоначальное использование памяти для обоих файлов составляет чуть менее 500 МБ. Но когда я попадаю в это место в коде, использование памяти возрастает до 3000 МБ в одном файле и до 9800 МБ в другом. Это вызвало проблемы нехватки памяти у некоторых из моих коллег.

На листе «GetAccess» есть таблица, в которой данные выгружаются из таблицы базы данных. Всплески памяти, когда я нажимаю .Refre sh BackGroudQuery: = False

Я использую ту же таблицу в GetAccess для извлечения данных из разных таблиц в базе данных, изменяя команду sql CT = " эта часть изменяется "

Перед этим разделом я очищаю существующие данные перед обновлением данных из базы данных

    CT = Array("SELECT * FROM ProdData2")

Sheets("GetAccess").Visible = True
Sheets("GetAccess").Select
 Cells(1, 1).Select
 'Division = Sheets("TeamTypes").Range("Q1").Value
 
    With Selection.ListObject.QueryTable
        
        .CommandText = CT
        .Refresh BackgroundQuery:=False   ' MEMORY spikes here
    End With
    Range("A1").Select
    Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False

После этого я начинаю переходить из GetAccess на другой лист

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...