Hello,

I need some help on making a loop for an Windows Form application. This application takes as input a salesperson gross amount, and determines how many of the salespeople earned salaries in each range ($200 - 299, 300 - 399, and so on). I have to use an array of counters to do that. What I am trying to do is when the user inputs an amount into the textbox, and clicks a button, the range where the salary falls into is determined and then added to that group, and then the user can repeat that process as many times as necessary. What I have so far works only when the user enters an amount for the first time, but I can't figure out a loop structure where the user can do that infinite amount of times.

thank you

Public Class Form1


    Private Sub btnCalculate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalculate.Click

        Dim SalesRange As Integer() = {0, 0, 0, 0, 0, 0, 0, 0, 0}
        Dim grossSales As Integer
        Dim salary As Integer
        Dim count As Integer


        grossSales = CInt(txtAmount.Text)
        salary = (grossSales * 0.09) + 200


        Select Case salary
            Case 200 To 299
                SalesRange(0) += 1
            Case 300 To 399
                SalesRange(1) += 1
            Case 400 To 499
                SalesRange(2) += 1
            Case 500 To 599
                SalesRange(3) += 1
            Case 600 To 699
                SalesRange(4) += 1
            Case 700 To 799
                SalesRange(5) += 1
            Case 800 To 899
                SalesRange(6) += 1
            Case 900 To 999
                SalesRange(7) += 1
            Case Is > 1000
                SalesRange(8) += 1
        End Select


        lstOutput.Items.Add("Salary Range:  " & vbTab & "Salary Frequency")
        lstOutput.Items.Add("$300 - 399   : " & vbTab & SalesRange(1).ToString())
        lstOutput.Items.Add("$400 - 499   : " & vbTab & SalesRange(2).ToString())
        lstOutput.Items.Add("$500 - 599   : " & vbTab & SalesRange(3).ToString())
        lstOutput.Items.Add("$600 - 699   : " & vbTab & SalesRange(4).ToString())
        lstOutput.Items.Add("$700 - 799   : " & vbTab & SalesRange(5).ToString())
        lstOutput.Items.Add("$800 - 899   : " & vbTab & SalesRange(6).ToString())
        lstOutput.Items.Add("$900 - 999   : " & vbTab & SalesRange(7).ToString())
        lstOutput.Items.Add("$1000 or more: " & vbTab & SalesRange(8).ToString())

    End Sub

End Class

Edited 3 Years Ago by mike_2000_17: Fixed formatting

Hi emko. Try this: Give your SalesRange array form scope: At the top type:

Public Class Form1

Private SalesRange As Integer() = {0, 0, 0, 0, 0, 0, 0, 0, 0}

And delete this from your btnCalculate_click sub.

Dim SalesRange As Integer() = {0, 0, 0, 0, 0, 0, 0, 0, 0}

THen make sure you clear the listbox before filling it each time

lstOutput.Items.clear

This way your salesRange will survive between clicks

Hi emko. Try this: Give your SalesRange array form scope: At the top type:

Public Class Form1

Private SalesRange As Integer() = {0, 0, 0, 0, 0, 0, 0, 0, 0}

And delete this from your btnCalculate_click sub.

Dim SalesRange As Integer() = {0, 0, 0, 0, 0, 0, 0, 0, 0}

THen make sure you clear the listbox before filling it each time

lstOutput.Items.clear

This way your salesRange will survive between clicks

That's it ! Thank you very much.

This question has already been answered. Start a new discussion instead.