• Status: Solved
• Priority: Medium
• Security: Public
• Views: 154

select case

I'm making a calculator that requires the input of two out of seven variables. I figure there are about 42 possible combinations. I started by just using if , elseif etc. but quickly had such a mess I lost track of where I was. I'm thinking that maybe selsct case would be the way to go, but I've never used that before, could someone show me or have a better method. I'm using VB4 pro 16bit, my input variables are text6 - 12.
Thanks
0
ralphy
1 Solution

Commented:
Select Case Text6.Text
Case "1":
.....
Case "Log":
.....
Case "+":
.....
Case Else
' *** Otherwise
End Select
0

Commented:
Change your text boxes to a control array. Change the index on text6 to 0, then change the name of the rest to text6 and answer yes about a control array.

Use this code to check the text boxes

Dim var1() As String
Dim licnt As Integer
Dim licnt1 As Integer

licnt1 = 0
For licnt = 0 To 6
If Len(Text6(licnt)) <> 0 Then
ReDim Preserve var1(licnt1)
var1(licnt1) = Text6(licnt)
licnt1 = licnt1 + 1
End If
Next licnt
Debug.Print licnt1
For licnt = LBound(var1) To UBound(var1) - 1
Debug.Print "A " & var1(licnt)
Next licnt

Hope this helps.
0

Commented:
I agree that this is a case for a control array. Normally I'd set up a counter var and then sequence thru all of the controls in the array and increment the counter if one of the controls is non-blank. At the end of the loop, if the counter var is >=2 then you'll know at least two of your fields have been filled.

countvar = 0
for ndx = LBound( Cmd_array ) to UBount( Cmd_Array )
if len( cmd_Array( ndx ).Text ) > 0 then countvar = countvar+1
next ndx
if countvar >1 then
... do stuff ...
else
... don't do stuff ...
endif

M

M

0

Commented:
Take a look at using Tags!  Check it out!
Anthony
0

Author Commented:
waty
I don't understand what the four cases are or mean, please explain in a little bit of detail.
Thanks
Ralphy
0

Commented:
the value after the case are all the possible value. I will show you another example where you normally use an IF :

Select Case chkShowDetails.Value
Case 0 :  '*** Unchecked
frmDetails.Visible=False

Case 1 :  '*** Checked
frmDetails.Visible=True
frmDetails.Show

Case 2 :  '*** Grayed
frmDetails.Visible=True
frmDetails.Enabled=False
frmDetails.Show

End Select

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.