There are 2 things you need to try. First get this add-in Find Links:
http://www.bmsltd.ie/MVP/Default.htm
Run it on your spreadsheet. Just have it make a list without message or
deletion. I'm guessing you have hundreds of old links associated with your
Imported Data worksheet. If true, then links from old queries are piling up
with each import. Run FindLinks again and have it delete them this time.
To keep it from happening again, don't just clear the cells in your imported
data sheet. Before you do a new import, delete the worksheet and then create
a new sheet with the same name, then run your query. Once you delete a
sheet, all the old query links are deleted with it so they won't accumulate.
Mike F
<(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> I'm using a VBA macro to repeatedly pull data from a MySQL database
> using an ODBC connector. This is the main subroutine with the query
> (note I've removed various things from the macro such as server,
> username, password and the exact query which aren't important)
>
> Sub DataImport()
> Dim rRng As Excel.Range
> Sheets("Imported Data").Select
> Set rRng = Range("A1:F1000")
>
> With ActiveSheet.QueryTables.Add(Connection:= _
> "ODBC;DATABASE= ;DRIVER={MySQL ODBC 3.51
> Driver};OPTION=0;;PORT=0;SERVER= ;UID= ;PASSWORD= " _
> , Destination:=rRng)
> .CommandText = Array( _
> "SELECT * FROM table WHERE " _
> )
> .Name = "Query from Database"
> .FieldNames = True
> .RowNumbers = False
> .FillAdjacentFormulas = False
> .PreserveFormatting = True
> .RefreshOnFileOpen = False
> .BackgroundQuery = True
> .RefreshStyle = xlInsertDeleteCells
> .SavePassword = True
> .SaveData = True
> .AdjustColumnWidth = True
> .RefreshPeriod = 0
> .PreserveColumnInfo = True
> .Refresh BackgroundQuery:=False
> End With
> Set rRng = Nothing
>
> End Sub
>
>
> The data gets dumped in the worksheet Imported Data.
>
> I have another macro with a loop to run this query with different data
> each time. The loop runs through about 1000 cases and each time I do
> my analysis in another worksheet. Before I do a new import, I call
> Selection.ClearContents and Selection.Clear to remove the previous
> data.
>
> The problem is that when I click on the imported data worksheek, my
> CPU usage goes to 100%. I noticed that in the Excel Name Box
> the .Name field "Query from Database" shows up numerous times.
>
> My questions are:
> 1) Why does the query name show up in the Excel Name Box?
> 2) Is there something I'm not doing to clear the previous data or
> release the memory?
> 3) Is there some way to reduce the CPU usage when I click on the
> imported data worksheet?
>
> Thanks.
>