Albert,
Thanks for the info. Here's what I found:
1. I switched it to Windows authentication.
2. I was able to confirm what you stated, that new connections are not
done for all controls, only certain ones (like list boxes).
3. Yes, ODBC Connection Pooling was enabled, although I don't think
that Jet uses it (it needs to be requested by the ODBC Client).
Nonetheless, Access still hangs up and reconnects, for those particular
controls.
I came across this white paper (formerly on MSDN) which may shed some
light:
http://web.archive.org/web/20041028125124/http://www.microsoft.com/accessdev/articles/Jet3ODBC.htm
"An active statement is a query whose results have not been completely
fetched from the server. Some servers/drivers do not allow any other
statements to be executed on a single connection if there is an active
statement on that connection. In this case, Jet may use multiple
connections (for example, when updating a record before the entire
dynaset is fetched)... Jet maintains connections even when they are not
explicitly in use, to avoid constantly disconnecting and reconnecting.
This is invisible to the user. The number of idle connections
maintained depends on the value of SQL_ACTIVE_STATEMENTS: If 1, then
two idle connections are maintained. If greater than 1, then one idle
connection is maintained."
So, it sounds like Jet wants to populate those controls using a
separate connection than the main connection that the form is using,
and hence needs to connect again. But it won't leave more than two
idle connections open, and so it needs to reconnect each time.
Unfortunately, using Windows authentication didn't solve this.
So, all this being said, is there anyway I can cause Jet to keep more
of those connections open (even if idle), or, alternatively, to reuse
the same connection as opposed to starting new ones?