vendredi 20 novembre 2015

More efficient error catching?

So I am at an internship for school that is having me code a program using vb6. One of the forms has three combo boxes that must have a choice selected in each before moving on. If the user missed one of the comboboxes I am trying to bring it to their attention to go back and make a selection before continuing. I have an if statement, which works exactly how I want it to:

If cboYear.SelectedIndex = -1 Then
        warningString = warningString + "Year" & vbNewLine & "Vendor" & vbNewLine & "Report"
        txtYear.ForeColor = Color.Red
        TextBox7.ForeColor = Color.Red
        txtReport.ForeColor = Color.Red
        MessageBox.Show(warningString)
    ElseIf cboVendorName.SelectedIndex = -1 Then
        warningString = warningString + "Vendor" + vbNewLine & "Report"
        txtYear.ForeColor = Color.Black
        TextBox7.ForeColor = Color.Red
        txtReport.ForeColor = Color.Red
        MessageBox.Show(warningString)
    ElseIf cboReport.SelectedIndex = -1 Then
        warningString = warningString + "Report" & vbNewLine
        txtYear.ForeColor = Color.Black
        TextBox7.ForeColor = Color.Black
        txtReport.ForeColor = Color.Red
        MessageBox.Show(warningString)
    Else
        Main.Show()
        Me.Hide()
    End If

(warningString is a generic string that says something like "Please fill in the following:")

So like I said this works exactly how I want it to, and its pretty easy to follow my logic here. My question is how can I make this code more efficient? I have tried arrays to hold combobox selections, and I have tried a for loop and a select case to try and streamline the code to no avail. The array always breaks out and returns a NullReferenceException before it gets to my Select Case or For loop to see if there is a value in the combobox or not.

If there is someone out there who can help walk me through the logic of getting some kind of loop to work for the above, that would be awesome. I'm not asking for working code or anything like that, however if there is a solution to be found and I get there myself I will post it here for future reference for people. Who knows, this might even be the most efficient way already? I wish I knew more about vb6, I never coded in this language until accepting this internship this semester.

Aucun commentaire:

Enregistrer un commentaire