Microsoft ActiveX Data Object(ADO) provides connection pooling.If there are ADO connection object that connected with specific database, it will share current connection when there are existing ADO connection object rather than making new connection.Therefore it still show good performance even you use ADO connection object only once as local variable and just leave one ADO connection object that connected database during running a program.
Here is an example.
For more detail please refer to Pooling in the Microsoft Data Access Components http://msdn.microsoft.com/en-us/library/ms810829.aspx