如何在vb6中查看组合的listindex?

时间:2013-02-05 05:13:36

标签: oracle vb6

我在这里加载了组合框的值,但我不想将ListIndex属性设置为-1。

Private Sub Form_Load()
    OPENCON
    RES.Open "DIVISION", CON, adOpenDynamic, adLockOptimistic, adCmdTable
    If RES.RecordCount > 0 Then
        RES.MoveFirst
        For i = 0 To RES.RecordCount - 1
            CmbDiv.AddItem RES.Fields("DIV").Value
            CmbDiv.ItemData(CmbDiv.NewIndex) = RES.Fields("DIVID").Value
            RES.MoveNext
        Next
    End If
    RES.Open "HNM", CON, adOpenDynamic, adLockOptimistic, adCmdTable
    If RES.RecordCount > 0 Then
        RES.MoveFirst
        For i = 0 To RES.RecordCount - 1
            CmbHouse.AddItem Trim(RES.Fields("HOUSE").Value)
            CmbHouse.ItemData(CmbHouse.NewIndex) = RES.Fields("HID").Value
            RES.MoveNext
        Next
    End If
End Sub    

这是我用来修改记录的代码。

Private Sub CmdSave_Click()
    sql = "UPDATE STUDENT_RECORD_DATABASE SET "
    sql = sql + "ROLLNO= " & Val(CmbRNO) & ","
    sql = sql + "DIVID='" & Val(CmbDiv.ItemData(CmbDiv.ListIndex)) & "',"
    sql = sql + "HID=" & Val(CmbHouse.ItemData(CmbHouse.ListIndex)) & " "
    sql = sql + "WHERE ROLLNO= " & Val(CmbRNO) & ""
    Set RES = CON.Execute(sql)
End Sub

当我修改分区和房子时运行代码然后就可以了 但当我让它们中的任何一个值(不修改值)时,它会在CmdSave_Click的第3行和第4行显示错误:

  

无效的属性数组值

1 个答案:

答案 0 :(得分:2)

将数据加载到组合框后,将listindex设置为0

Combo1.ListIndex = 0

最好检查listindex是否为-1,如果它是-1,那么不要执行操作,或者给用户一个警告,他应该从组合框中选择一些东西