At least you are pointing to the right directions at this moment. The questions you ask seem to me you are now in the right 'developer-mode' :=)
Professor can be right but it's up to you where to open the connection. In most cases, and esspecially for .Net, the connections are made when you want to query, update, insert or delete something from the database and close it when ready. Anyways, you still can open the connection whenever you want & close it whenever you want.
In the case of using Access as a backend database, you're out of many options. You got to remember that Access is a
file-based database which means that if you query some tables, all the tables in the query are pulled over to the client and after that they are being queried (client side). With a lot of data, you can experience a lot of performance problems.
Pointing to your question: leave all database actions within the button_click, as ProfessorPC suggested. Take a look at this post
http://www.daniweb.com/forums/thread172996.html and look for
rapture's code examples on oledb connections etc....
Also ProfessorPC's example is a nice solution
Regards,
Richard
The Netherlands