|
-
Jun 27th, 2011, 11:01 PM
#1
Thread Starter
Addicted Member
[RESOLVED] If statement not working
I have form1 and form2. On form 2 i have 2 combo boxes where the user is asked to make selections. once back on form1 i try to use those selections as part of an if statement but although i should be triggring them it does not. I cannot figure this out. I have set up test variables and msgboxes along the way to test this.
The code excecutes. I have double checked the variables on form 2. They just do not trigger a response that will enter the if statements even though it looks like they should
I have double checked that test1 and test 2 are grabbing the variables from form 2
test1 is "Male"
test2 is "10 - 19"
When the code excecutes i never get to the msgbox("Age") line of code. I have also tried taking the spaces out of the strings with no luck as well.
Code:
Dim test1 As String = aselect.sex
Dim test2 As String = aselect.age
If aselect.age = "2 - 9" Then
If aselect.sex = "Male" Then
If q > 5 And q < 40 Then
patient_frm.lthor_kypt = 1
End If
If q < 5 Or q > 40 Then
patient_frm.lthor_kypt = 2
End If
End If
If aselect.sex = "Female" Then
If q > 8 And q < 36 Then
patient_frm.lthor_kypt = 1
End If
If q < 8 Or q > 36 Then
patient_frm.lthor_kypt = 2
End If
End If
End If
If aselect.age = "10 - 19" Then
MsgBox("Age")
If aselect.sex = "Male" Then
If q > 8 And q < 39 Then
patient_frm.lthor_kypt = 1
End If
If q < 8 Or q > 39 Then
patient_frm.lthor_kypt = 2
End If
End If
If aselect.sex = "Female" Then
If q > 11 And q < 41 Then
patient_frm.lthor_kypt = 1
End If
If q < 11 Or q > 41 Then
patient_frm.lthor_kypt = 2
End If
End If
End If
-
Jun 28th, 2011, 01:02 AM
#2
Addicted Member
Re: If statement not working
For starters, your two main IF statements aren't going to return true. If you're looking for a range of numbers, you may want to write it as "If aselect.age >= 2 and aselect.age <= 9 then". Same goes for your second IF statement. When you put those numbers in quotations, it is treated as a String. You should be comparing a number to a number.
-
Jun 28th, 2011, 01:57 AM
#3
Re: If statement not working
 Originally Posted by Deslyxia
I have double checked that test1 and test 2 are grabbing the variables from form 2
test1 is "Male"
test2 is "10 - 19"
When the code excecutes i never get to the msgbox("Age") line of code. I have also tried taking the spaces out of the strings with no luck as well.
Code:
If aselect.age = "10 - 19" Then
MsgBox("Age")
...
End If
while test2 is indeed "10 - 19" , your aselect.age might not be. The only reason your msgbox is not shown is that aselect.age is not equal to the "10 - 19" string literal.
Perhaps, you should also check your typing. (You do have option strict on, don't you?). A typo might also be the case.
If you absolutely must compare string literals, try to hardcode them only in one place - use constants:
Code:
Const TEENAGE As String = "10 - 19"
-
Jun 28th, 2011, 07:12 AM
#4
Thread Starter
Addicted Member
Re: If statement not working
Let me see if i can clear some things up.
while test2 is indeed "10 - 19" , your aselect.age might not be
Test2 is actually being set by aselect.age this was a test just to make sure it was correct. And to take it one step further i tried substituting test2 in my if statement rather than aselect.age
For starters, your two main IF statements aren't going to return true.
In form2 once the user selects a selection from the combo box i set a public variable as such:
Code:
Public sex As String
Public age As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
age = cmb_age.Text
sex = cmb_sex.Text
Dim ex As Boolean = True
If String.IsNullOrEmpty(cmb_age.Text) Or String.IsNullOrEmpty(cmb_sex.Text) Then
MsgBox("Please check your Selections")
ex = False
End If
If ex = True Then
Me.Visible = False
End If
End Sub
As far as mistypes I went over that as well. This is the list of selections from the actual combo box:
2 - 9
10 - 19
20 - 29
30 - 39
40 - 49
50 - 59
60 - 69
70 - 79
Im still at a loss. It really looks like it should work.
-
Jun 28th, 2011, 07:25 AM
#5
Re: If statement not working
Try replacing the combo values with plain numbers, such as:
2
10
20
30
40
50
60
70
Also update all your code, such as the IF conditions and any other code to use these numbers. Then check the code and see if it works.
.
-
Jun 28th, 2011, 07:36 AM
#6
Thread Starter
Addicted Member
Re: If statement not working
Try replacing the combo values with plain numbers
I will try doing that as soon as I get home but I have a question. If i dont have the upper limits on the range how would i keep them from overlapping? Even if i type a number into the combo box it is still treating each line as a string right?
-
Jun 28th, 2011, 07:55 AM
#7
Re: If statement not working
Did you trace the program using (F10) ? Just to confirm that the execution is indeed hits that IF statements. Aside from that - use string constants. Assign it both to the combobox and use the same constand in the IF statement otherwise a single whitespace in the wrong place can return false.
-
Jun 28th, 2011, 08:05 AM
#8
Thread Starter
Addicted Member
Re: If statement not working
Did you trace the program using (F10) ?
I did trace it using and what i found was that i am just not triggering them. The code directly before and directly after the if statements excecutes as expected.
Is there a possibility that the issue is a space at the END of the string? But if thats the case when i look at the value of test2 at excecution shouldnt it be
"10 - 19 " instead of "10 - 19" ?
-
Jun 28th, 2011, 08:15 AM
#9
Re: If statement not working
I don't quite understand what you mean in your last post, yes "10 - 19 " would NOT be equal to "10 - 19"
And if you trace the code using F10 the IF statement must be highlighted at all times, even if the condition is false. Does it happen?
-
Jun 28th, 2011, 08:59 AM
#10
Re: If statement not working
The most likely problem is that there is a hidden character or whitespace. It may not be visible, as some characters really aren't visible during debug. However, that's one good reason to re-think the design. Comparing strings is a pain, as you can see, but it is also relatively slow. Since the user is selecting these strings from a combobox, how about designing it such that the SelectedIndex (which is an integer) can be used rather than the SelectedItem (which is a string)?
My usual boring signature: Nothing
 
-
Jun 29th, 2011, 07:40 AM
#11
Thread Starter
Addicted Member
Re: If statement not working
I appreciate all the help. It is working now. What i wound up doing was go back and remove the dashes from everything and replace them with to. So instead of 9 - 19 it read 9 to 19 .
The second i did that everything worked perfectly.
Again I appreciate the help and Shaggy that is an interesting point.
-
Jun 29th, 2011, 08:06 AM
#12
Addicted Member
Re: [RESOLVED] If statement not working
That makes me think that somewhere it was literally doing 9 minus 19 instead of a string "9 - 19".
-
Jun 29th, 2011, 08:15 AM
#13
Thread Starter
Addicted Member
Re: [RESOLVED] If statement not working
Yeah i thought about that as well. I was just unable to find where it was doing it. It wasnt on form 2 because the temp variable i made came back looking correctly encapsulated by quotes. And the comparison in the If statement is also correctly encapsulated.
It seemed wierd to me as well which is how it got posted here. But it is working now so I am happy.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|