0

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

コードの実行中に、除算と家の両方を変更すると問題ありませんが、いずれかの値を許可すると(値は変更されません)、次の3行目と4行目にエラーが表示されますCmdSave_Click

無効なプロパティ配列値

4

1 に答える 1

2

データをコンボボックスにロードした後、listindexを0に設定します

Combo1.ListIndex = 0

listindexが-1であるかどうかを確認し、-1である場合は、アクションを実行しないか、コンボボックスから何かを選択する必要があることをユーザーに警告することをお勧めします。

于 2013-02-05T06:25:53.690 に答える