The Microsoft Access engine will maintain a persistent connection onan ODBC connection in order to be more efficient, even after using a Closemethod on a database opened with ODBC. The ODBC database process keepsrunning. To close the connection successfully, you must end the VisualBasic application. Even though this is by design, many times the connectionis unwanted. One way to force the connection closed is to set ConnectionTimeoutto the minimum setting of one second. A setting of zero indicates to neverclose the connection. It is defaulted to a value of 600 seconds, or 10minutes. If a Visual Basic program does not reopen the ODBC connectionafter doing a Close method, a timeout occurs and the connection closesautomatically. You can control the timeout period by placing the followingline in your VB.INI or
[ODBC]ConnectionTimeout=x
To enforce the fastest possible timeout, you can set ConnectionTimeoutto one. In addition, you can add this code after you close the databaseto make sure the connection is terminated:
db.Close ' Close database, using ' database object variable (db).Start = TimerDo ' This loop pauses a second ' to allow a time-out FreeLocks ' Tell Microsoft Access ' engine that program is idle. DoEvents ' Tell Windows to do any ' pending events.Loop While Timer <= Start + 1
This loop delays for a second after the db.Close. The FreeLocks statementtells the database engine that the user is idle. If you run the VisualBasic program with ConnectionTimeout set to one in your VB.INI or