There's no guarantee that this is causing your problem, but it's a possibility.
Microsoft had an article that I printed some time ago (can't find the link anymore) titled "Jet 3.0 Dynamic Memory Usage and Access ODBC Driver". Here's a brief transcription:
Quote:
Question:
How does MaxBufferSize setting affect ODBC applications using the Access Driver?
Answer:
Microsoft Access ODBC Driver v3.x is based on Jet 3.0 Engine. If you do not set the MaxBufferSize in the Registry and try to insert records continuously into a table, you will notice a huge growth in the memory consumed by the application (process) using the driver. If your application, running on Windows NT, is inserting records without ever closing the database connection, the system may run out
of virtual memory.
The memory growth will eventually reach a peak value that is equal to the high water mark computed by Jet 3.0 and can be easily mistaken for a memory leak in the driver. However, it is important to note that it is not a memory leak as the memory growth stabilizes after reaching the peak value. This behavior is by design.
If you don't want the driver/Jet to allocate dynamic memory...it is recommended that you set the MaxBufferSize to a value like 512KB....
End quote.
Hope this is of use to you.