组合框验证

时间:2016-06-08 13:56:08

标签: arrays combobox vb6

我在一个表单上有6个组合框 - 它们在一个数组中。它们被称为cboClient(0)到cboClient(5)。我在这里要做的是验证有一个值,所以

if cboclient(0)<>"" and not isnull(cboClient(0)) then
   'Do this
End if

每个cbo都会填充相同的项目列表。我的目标是确保用户不能在超过1个cbo中进行相同的选择。基本上,如果他们在cboClient(0)中选择第1项,则无法在任何其他cbo中选择该项目。

我正试图找到一种方法,以便我可以尽可能少地执行此操作,我可能会这样做。但是这将是非常长的,因为我必须验证每个cbo对其他人< / p>

if cboClient(0).text <> cboClient(1).text then
    msgbox "OK"
Else
    msgbox "Please choose again"
End if

我试图以某种方式在循环中写它?验证每个cbo中的.text并确保没有做出两个相同的选择。有什么想法吗?

编辑: 我有6个cbo - 每个人都填充了相同的数据(比如数据编号1到10)。如果用户在cboClient(0)中选择“1”,则无法在另一个cbo中选择此项。我不一定要把它隐藏起来 - 但是一旦他们点击SAVE - 我想要有一个功能到位来运行CBO并检查他们是否多次选择了相同的项目 - 如果他们有,我想给他们一个MsgBox说“修复你的选择,你不能有两个项目”

编辑2:

也许做两个循环 - 一个在另一个循环中......

dim a as integer
dim b as integer

for a = 0 to 5
   for b = 1 to 5
       if cboClient(a).text <> cboclient(b).text then
          'keep going
       else
           MsgBox "you have made the same selection"
       End if
   next b
next a

那样的东西?

1 个答案:

答案 0 :(得分:1)

试试这段代码:

For i = 0 To 5
    For j = 0 To 5
        If i <> j And cboClient(i).Text = cboClient(j).Text Then
            MsgBox "You must choose diffirent values, Please choose again"
            Exit Sub
        End If
    Next
Next