Actually, Vit's solution has the same problem... the Forms collection only references the open forms, so your application would have to load all your forms for that to work.... then you could show them when appropriate. This is probably not the best way to go.... the alternative would be to create a procedure which takes the name of the form as a string, goes thru a Select Case and opens the appropriate form... This solution isn't as pretty but it would work.

Public Sub OpenFormByName (sFormName as String)
Select Case sFormName
Case "frmMain"
frmMain.Show
Case "frmDetail"
frmDetail.Show
Case Else
MsgBox "Oops"
End Select

Hope this helps.
Bash