I have a lengthy startup procedure that loads data from a database. I'm trying to display a splash screen while it gets the data. I'm using the following:

Sub Main()
frmSplash.Show
'Get data from database.
.............
'Show main form.
frmMain.show
Unload frmSplash
End Sub

The problem is that only an outline of the splash screen ever shows. It shows this outline until it gets the data and then displays the main form. How do I get the splash screen to completely show while the data is being retrieved? Thanks for any help.