ptran2000
asked on
easy array question
I have an array of 32 textboxes
txtName(0)
txtName(1)
TxtName(2).....TxtName(31)
Objective:If one(or many) of these textboxes' backcolor is yellow, then it should open form1 else it should open form 2.
This is my current code but it will only work(shows form1) if all of the 32 textboxes' backcolor is yellow. How can I make it show form1 even if only 1 textbox is yellow?
--------------------------
If TxtName(Index).BackColor = &H80FFFF Then
form1.Show
Else
form2.Show
End If
-------------------
Thanks much
txtName(0)
txtName(1)
TxtName(2).....TxtName(31)
Objective:If one(or many) of these textboxes' backcolor is yellow, then it should open form1 else it should open form 2.
This is my current code but it will only work(shows form1) if all of the 32 textboxes' backcolor is yellow. How can I make it show form1 even if only 1 textbox is yellow?
--------------------------
If TxtName(Index).BackColor = &H80FFFF Then
form1.Show
Else
form2.Show
End If
-------------------
Thanks much
Dim x,Found
Found = False
For x = 0 to 31
If TxtName(x).BackColor = &H80FFFF Then
form1.Show
Found = True
Exit for
End if
Next x
If Found = False then
form2.show
End IF
Found = False
For x = 0 to 31
If TxtName(x).BackColor = &H80FFFF Then
form1.Show
Found = True
Exit for
End if
Next x
If Found = False then
form2.show
End IF
Hes got it.. except that I would have done ..
dim Found as Boolean
Found = false
for x% = 0 to 31
....
Anyway =)
dim Found as Boolean
Found = false
for x% = 0 to 31
....
Anyway =)
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ptran2000. All these guys have given u the solution u required. What r u waiting for. Each one is a solution for the problem and the best being AzraSound for the loop runs only until the backcolor is found. U r done know. rate it guy
Answering my first question here. I'm so excited :) What form are you textboxes on. Here is code for 3 forms. replace names if you need to. Everybody let me know what you think.
Private Sub Command1_Click()
Dim sControl As Control
For Each sControl In form1
If TypeOf sControl Is TextBox And sControl.BackColor = &H80FFFF Then
Form2.Show
Exit Sub
End If
Next
If Form2.Visible = False Then
Form3.Visible = True
End If
End Sub
Private Sub Command1_Click()
Dim sControl As Control
For Each sControl In form1
If TypeOf sControl Is TextBox And sControl.BackColor = &H80FFFF Then
Form2.Show
Exit Sub
End If
Next
If Form2.Visible = False Then
Form3.Visible = True
End If
End Sub
Hello RandyB30. Welcome to EE!
As many others have already posted suggestions similar to your own would you mind retracting your answer and leaving it in as a comment?
As many others have already posted suggestions similar to your own would you mind retracting your answer and leaving it in as a comment?
Let him be caraf_q. It is the author who has encouraged RandyB30 to post a diff. solution(atleast he thinks it is different) as the author haven't accepted the previous answers.
But... the BIG disadvantage of randyb30's code is that form2 is loaded even if there is no need to. And you will get a fatal error if a control on your form does not a Backcolor property... I would recommend to use a somewhat optimized form of hes' code, something like...
Dim a As Integer
For a = txtName.LBound To txtName.UBound
If (txtName(a).BackColor = &H80FFFF) Then
Form2.Show
Exit For
End If
Next
If (a > txtName.UBound) Then Form3.Show
Dim a As Integer
For a = txtName.LBound To txtName.UBound
If (txtName(a).BackColor = &H80FFFF) Then
Form2.Show
Exit For
End If
Next
If (a > txtName.UBound) Then Form3.Show
<gah> of course it should be Form1.Show inside the For..Next loop and Form2.Show in the last line. ;)
Sure, it's retracted. Maybe you should answer. Looks like you need points more than I.
<blush>
AshokKumar, you're right. RandyB30 - apologies!
AshokKumar, you're right. RandyB30 - apologies!
Ptran2000. u r messing up with all those guys around here. Just go ahead and accept any one answer. What is taking you so much time. All are genuine solutions. Guys, pls. don't give any more version of answers to this guy.
I see now that they are all comments. Doesn't matter Vbmaster caught the backcolor property mistake. Last answer from me.
Hi ptran2000,
r u not satisfied with these expert's answer ?
Then why u r waiting ?
U need still more stuff ?
Rate the Expert.
r u not satisfied with these expert's answer ?
Then why u r waiting ?
U need still more stuff ?
Rate the Expert.
Whoa, give ptran a chance... the question was posted Thursday, March 23 2000 - 02:56AM GMT. It's now 11:34AM GMT. It is therefore fair to assume that ptran is in a different time zone and fast asleep at this stage <G>
ASKER
Thank you for all your responses, all were great. But, it is true what AzraSound said, "Once you find a match you're done"
ptran2000, so does my solution,(only loop until a match is found) that is
Yes, the solutions before azrasound where all stopping when a match was found.
dim i as integer
dim bYellow as Boolean
bYellow = False
For i = 0 to Ubound(TxtName)
If TxtName(i).BackColor = &H80FFFF Then
form1.Show
bYellow = True
End If
next
if bYellow = False then
form2.Show
end if