sshayevich
asked on
control array
I have a control array(comboboxes), and I need to compare values of two comboboxes at run time after user inputs some values in comboboxes. How do I refer to these two controls?
Use the Index to refer to the element
Yes! You have to use the index to refer the array element. If you send me a e-mail with the code, I can reply...
For example,
if combo(1).text = combo(2).text then
beep
End If
Ok?!?
if combo(1).text = combo(2).text then
beep
End If
Ok?!?
ASKER
My user selects values from comboboxes.According to scenario two comboboxes can't have same values selected. So after they're done selecting i have to look at the values, and if there's 2 same values found, a prompts should be put up. So, I don't know which index to refer to.
Compare two members of the array:
If Combo1(0).Text = Combo1(1).Text Then
'They match
End If
Or look at each control in the array:
Dim i As Long
For i = Combo1.LBound To Combo1.UBound
Debug.Print Combo1(i).Text
Next
If Combo1(0).Text = Combo1(1).Text Then
'They match
End If
Or look at each control in the array:
Dim i As Long
For i = Combo1.LBound To Combo1.UBound
Debug.Print Combo1(i).Text
Next
Example:
If Combo1(2).Text = Combo1(3).Text then
'some code
End If
In the combo's event, the index will pass to you to indicate which element you are in
Private Sub Combo1_Click(Index as Integer)
If Index= 0 then
If Combo1(Index).Text = Combo1(1).Text then
End If
Else
If Combo1(index).Text = Combo1(0).Text then
End If
End If
End sub
If Combo1(2).Text = Combo1(3).Text then
'some code
End If
In the combo's event, the index will pass to you to indicate which element you are in
Private Sub Combo1_Click(Index as Integer)
If Index= 0 then
If Combo1(Index).Text = Combo1(1).Text then
End If
Else
If Combo1(index).Text = Combo1(0).Text then
End If
End If
End sub
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
I've tried this code before, and I get the msgbox"same values" no matter wether there is or there's no duplicate value found.
Make sure you are not indexing the same control. Use
Debug.Print i; j
just before
MsgBox ...
to confirm they are not equal.
Debug.Print i; j
just before
MsgBox ...
to confirm they are not equal.
On another note.
Where are the list for the combo boxes getting their data. Is it from a DB table?
One thing you could do is to put code in the lost focus event of the combo boxes and rebuild the list excluding any value selected.
Just a rough idea.
Andy
Where are the list for the combo boxes getting their data. Is it from a DB table?
One thing you could do is to put code in the lost focus event of the combo boxes and rebuild the list excluding any value selected.
Just a rough idea.
Andy
ASKER
Thank you