Hey guys here is the problem I have two variables that need their values switched , but only if the value stored in the first is less than the value stored in the second. Tried a couple of things, but am at a brick wall, I am a newbie to VB.

Public Class Form1

    Private Sub btnCheck_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCheck.Click
        Dim getMarySales As Integer
        Dim getJeffSales As Integer
        If getMarySales < getJeffSales Then
            getJeffSales = txtGetMarySales.Text
            getMarySales = txtGetJeffSales.Text
        End If




    End Sub

Recommended Answers

All 7 Replies

In line 6, you are comparing your newly created integers, which are both 0. You need to either assign them the values from the text box before the comparison, or compare the textbox values themselves (I suggest the assignment).

You should also be having a problem assigning the textbox values to the integers themselves, because textboxes not integers. You will probably want to throw a couple Int32.Parse() calls in there to convert them to integers.

How would I compare textbox values because if I assign values, b/c if I assign textbox values, the users couldn't enter their own, right? Please excuse my ignorance if I am wrong and please explain to me how to do that. Also I looked at the parse and see if this would be correct.

Public Class Form1

    Private Sub btnCheck_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCheck.Click

        Dim getMarySales As Integer = txtGetMarySales.Text
        Int32.Parse(getMarySales)
        Dim getJeffSales As Integer = txtGetJeffSales.Text
        Int32.Parse(getJeffSales)
        If getMarySales < getJeffSales Then
            getJeffSales = txtGetMarySales.Text
            getMarySales = txtGetJeffSales.Text
        End If
    End Sub
End Class

In line 6, you are comparing your newly created integers, which are both 0. You need to either assign them the values from the text box before the comparison, or compare the textbox values themselves (I suggest the assignment).

You should also be having a problem assigning the textbox values to the integers themselves, because textboxes not integers. You will probably want to throw a couple Int32.Parse() calls in there to convert them to integers.

You don't need to set the textbox values to anything, just sompare them.

Then changes you made are almost complete, but change this

Dim getMarySales As Integer = txtGetMarySales.Text        
Int32.Parse(getMarySales)

to

Dim getMarySales As Integer = Int32.Parse(txtGetMarySales.Text)

(and the other one, too, as well as the ones after the comparison.)

There are several ways to write this section of code, and all will end up with the same result: your two variables holding the proper values. If you want to make your code more bulletproof, you can use Int32.TryParse() to handle problems when someone enters a non-number or decimal point in the textboxes. Also, instead of parsing the numbers twice, you can use a temp variable to help you swap the already calculated values (you will probably get an assignment later to write a Swap function like this:

Dim temp As Integer = a
a = b
b = temp

I am close getting it to work like this, however when the value jeffSales is greater than marySales it shows false not switch to the jeff value.

Public Class Form1

    Private Sub btnCheck_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCheck.Click

        Dim getMarySales As Integer = txtGetMarySales.Text
        Int32.Parse(getMarySales)
        Dim getJeffSales As Integer = txtGetJeffSales.Text
        Int32.Parse(getJeffSales)
        If getMarySales < getJeffSales Then
            txtGetMarySales.Text = txtGetJeffSales.Text AndAlso _
            txtGetJeffSales.Text = txtGetMarySales.Text
        End If
    End Sub

In your If block, you are swapping the values of text boxes, but not the values of the variables. Did you just want the values of the textboxes swapped?

I guess that would be correct, yes because the values showing up in the text boxes need to be switched.

In your If block, you are swapping the values of text boxes, but not the values of the variables. Did you just want the values of the textboxes swapped?

Any help with how to make them switch without it showing false in 1st textbox?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.