Solved

# select case

Posted on 1999-01-27
140 Views
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
Question by:ralphy

LVL 14

Accepted Solution

waty earned 100 total points
Select Case Text6.Text
Case "1":
.....
Case "Log":
.....
Case "+":
.....
Case Else
' *** Otherwise
End Select
0

LVL 3

Expert Comment

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

LVL 12

Expert Comment

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

LVL 1

Expert Comment

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

Author Comment

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

LVL 14

Expert Comment

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

## Featured Post

### Suggested Solutions

I’ve seen a number of people looking for examples of how to access web services from VB6.  I’ve been using a test harness I built in VB6 (using many resources I found online) that I use for small projects to work out how to communicate with web serv…
This article describes some techniques which will make your VBA or Visual Basic Classic code easier to understand and maintain, whether by you, your replacement, or another Experts-Exchange expert.
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…