Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Open Form Based On Table Value

Posted on 2007-11-16
10
Medium Priority
?
465 Views
Last Modified: 2008-02-01
I have a form with a combo on it that cross refrences which form to open based on the selection.  I have this half working.  It does the sql connection and looks up the value but stops and gives an error at the Show refrence in my code

I keep getting an error of
Unable to cast object of type 'system string' to type 'System.Windows.Forms.IWin32Window'.

so I think that it is having trouble taking the value from my table, which is the actual form name to open and translating to mytablevalue.show()
0
Comment
Question by:H-SC
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 4
10 Comments
 
LVL 24

Expert Comment

by:Jeff Certain
ID: 20302196
Please post your code.

However, the form name is not the form. You may want to do something like this:

Dim formName as string = ' Get the name here
Dim frm as Form
Select Case formName
  Case "myForm1"
    frm = new myForm1
  Case "myForm2"
    frm = new myForm2
End Select
frm.Show
0
 
LVL 27

Accepted Solution

by:
VBRocks earned 2000 total points
ID: 20302279
He're another way of doing it:

Let's say your combobox is named "Combobox1":

        'Set this to the name of your project (mine is "Expert")
        Dim sProjectName As String = "Expert"

        Dim frm As Form = _
            Activator.CreateInstance(System.Type.GetType(sProjectName & "." & ComboBox1.Text))

        frm.Show()


0
 
LVL 1

Author Comment

by:H-SC
ID: 20312183
Chaosian,

Here is the code that I currently have:

 Dim conn2 As New SqlClient.SqlConnection("Server= ---------;Database= -------;Trusted_Connection=yes")
        Dim sSQLCMd2 As String = ("select screen from modules where module='{m}'")
        sSQLCMd2 = Replace(sSQLCMd2, "{m}", Combobox1.Text)
        Dim scCmd2 As New SqlClient.SqlCommand(sSQLCMd2, conn2)
        conn2.Open()
        main.Show()
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 1

Author Comment

by:H-SC
ID: 20351011
VBRocks,

I keep getting the following error....

{"Value cannot be null.  Parameter name: type"}
0
 
LVL 27

Expert Comment

by:VBRocks
ID: 20351499
Put a break point on the Activator.CreateInstance line of code, and check the following:

What does this contain:   sProjectName & "." & ComboBox1.Text

0
 
LVL 1

Author Comment

by:H-SC
ID: 20352094
VBRocks,

It shows the project name as the name of my project  and the form name is the form that I selected in the dropdown that is a form in my project called form2
0
 
LVL 27

Expert Comment

by:VBRocks
ID: 20352130
So, can you show me exactly?  

Example:  In the Expert project, to open frmMain, It should be like this:  "Expert.frmMain"

Also, do you have your form in a namespace?

0
 
LVL 1

Author Comment

by:H-SC
ID: 20352401
it looks like the above...mine is PROJ5.form2

I dont think that either of the forms are in a unique namespace
0
 
LVL 27

Expert Comment

by:VBRocks
ID: 20352447
Ok, one possibility is the casing.  Make sure you have the correct case for the names.

For example, "PROJ5" should be exact, not "proj5" or "Proj5"
If form2 is actually "Form2", then correct that and try it again.

So, perhaps it should be like this:
    PROJ5.Form2


0
 
LVL 1

Author Comment

by:H-SC
ID: 20353124
VBRocks,

That was the key....I had form2 in the table as form2 and not Form2.  Many thanks
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Well, all of us have seen the multiple EXCEL.EXE's in task manager that won't die even if you call the .close, .dispose methods. Try this method to kill any excels in memory. You can copy the kill function to create a check function and replace the …
If you're writing a .NET application to connect to an Access .mdb database and use pre-existing queries that require parameters, you've come to the right place! Let's say the pre-existing query(qryCust) in Access takes a Date as a parameter and l…
Want to learn how to record your desktop screen without having to use an outside camera. Click on this video and learn how to use the cool google extension called "Screencastify"! Step 1: Open a new google tab Step 2: Go to the left hand upper corn…
In response to a need for security and privacy, and to continue fostering an environment members can turn to for support, solutions, and education, Experts Exchange has created anonymous question capabilities. This new feature is available to our Pr…

670 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question