Got it working in case it helps someone else:
Do While NextResult = True
Dim Button1 As New Button
Button1.Location = New Drawing.Point(2, 80 + i * 20)
Button1.TabIndex = i
Button1.TabStop = False
Button1.Text = "Open"
Button1.Tag = SQLReader.GetValue(1).ToString
LogIn.FormName = SQLReader.GetValue(1).ToString
AddHandler Button1.Click, AddressOf ClickButton
Controls.Add(Button1)
...
NextResult = SQLReader.Read()
Loop
-----------------------------------------------------
Private Sub ClickButton(ByVal sender As Object, ByVal e As EventArgs)
Dim frm As New Form
Dim formName As String = DirectCast(sender, Button).Tag.ToString
formName = [Assembly].GetEntryAssembly.GetName.Name & "." & formName
frm = DirectCast([Assembly].GetEntryAssembly.CreateInstance(formName), Form)
frm.Show()
Me.Hide()
End Sub