Awesome, I'm glad I was able to help.
Regarding performance, there are a number of things that can effect performance.
The biggest thing is the size of the dataset, only fill the dataset with the records that are needed, don't fill the dataset with the whole database and filter the records with CR.
What database are you using? If it's Sql Server you will always have a performance hit of a few seconds when you first make a connection because of the high overhead of the connection, subsequent connections are not delayed because of connection pooling, you may want to fill the connection pool when the form opens.
Make sure your fill queries are based on indexed columns
I think you mentioned that you will be running a number of different reports. Assuming that the delay is in the database fill and or the connection, you may want to set up your connection and fill your database when the form opens, then give the user a choice of reports to run. The form will be delayed when it opens but when the user runs the report it will open quickly. The delay will still be there but to the end user the program won't have that sluggish feel.
Perrin