当前位置:编程学习 > VB >>

VB用ADODC连数据库,按按钮出线“在对应所需名称或序数集合中,未找到项目”,怎么样解决?

Private Sub cmdSave_Click() '“保存”按钮
    If txtCourseName.Text = "" Then '若“课程名称”为空
       MsgBox "请输入课程名称!", vbOKOnly + vbInformation, "课程设置"  '提示信息
       txtCourseName.SetFocus   '设置输入焦点
       Exit Sub '退出过程
    End If
       
    If cmdSave.Caption = "保存" Then    '若按钮标题为“保存”
        strSQL = "SELECT * FROM [s_course] WHERE [course_name]='" & txtCourseName.Text & "'"    '生成查询SQL语句
        Set rs = QueryExt(strSQL)   '执行SQL语句进行查询
        If Not rs.EOF Then  '若记录集不为空
            MsgBox "课程名称已存在,请重新输入!", vbOKOnly + vbInformation, "提示"  '提示信息
            txtCourseName.Text = "" '清空“课程名称”文本框
            Exit Sub    '退出过程
        End If
        
        Set rs = QueryExt("SELECT * FROM [s_course] WHERE course_id=0") '生成SQL语句
        With rs
            .AddNew '增加记录
            For i = 0 To cmbCT.ListCount - 1    '查找课程类型编号
                If cmbCT.List(i) = cmbCT.Text Then
                    rs!ct_id = cmbCT.ItemData(i)    '保存课程类型编号
                End If
            Next
            rs!course_name = Trim(txtCourseName.Text)   '课程名称
            rs!course_memo = Trim(txtCourseMemo.Text)   '备注
            .Update '保存记录
        End With
        strSQL = "SELECT a.course_id,b.ct_name,a.course_name,a.course_memo "
        strSQL = strSQL & " FROM [s_course] a,[s_coursetype] b WHERE a.ct_id=b.ct_id"
        Set CourseGrid.DataSource = QueryExt(strSQL)    '为表格设置记录集
        CourseGrid.FormatString = " | 编号 |  课程类型  |  课程名称  |     说明      "  '表格表头
        MsgBox "课程信息已成功添加!", vbOKOnly + vbInformation, "班级设置"
        cmdSave.Caption = "保存"    '修改“保存”按钮标题
        cmdSave.Enabled = False '禁止“保存”按钮
        cmdDel.Enabled = False  '禁止“删除”按钮
        cmdAdd.Caption = "添加" '修改“添加”按钮标题
        txtCourseName.Enabled = False   '禁止“课程名称”文本框
        txtCourseMemo.Enabled = False   '禁止“备注”文本框
        cmbCT.Enabled = False   '禁止“课程类型”文本框
    Else    '按钮标题为“更新”
        strSQL = "SELECT a.course_id,b.ct_name,a.course_name,a.course_memo "
        strSQL = strSQL & " FROM [s_course] a,[s_coursetype] b WHERE a.ct_id=b.ct_id"
        strSQL = strSQL & " AND course_id=" & gID   '查询指定编号的课程
        Set rs = QueryExt(strSQL)   '执行SQL语句
        If rs.EOF Then  '若记录集为空
            MsgBox "更新数据时出现错误!", vbInformation + vbOKOnly, "班级设置" '提示信息
            Exit Sub    '退出过程
        End If
        For i = 0 To cmbCT.ListCount - 1    '查找“课程类型”的编号
            If cmbCT.List(i) = cmbCT.Text Then
                rs!ct_id = cmbCT.ItemData(i)  '更新课程类型编号
            End If
        Next
        rs!course_name = Trim(txtCourseName.Text)   '课程名称
        rs!course_memo = Trim(txtCourseMemo.Text)   '备注
       rs.Update   '更新修改后的数据
        MsgBox "课程信息已更新!", vbOKOnly + vbInformation, "班级设置"
        cmdDel.Enabled = False  '禁止“删除”按钮
        cmdSave.Enabled = False '禁止“保存”按钮
        cmdSave.Caption = "保存"    '修改“保存”按钮标题
        cmbCT.Enabled = False   '禁止“课程类型”组合框
        txtCourseName.Enabled = False   '禁止“课程名称”文本框
        txtCourseMemo.Enabled = False   '禁止“备注”文本框
        strSQL = "SELECT a.course_id,b.ct_name,a.course_name,a.course_memo "
        strSQL = strSQL & " FROM [s_course] a,[s_coursetype] b WHERE a.ct_id=b.ct_id"
        Set CourseGrid.DataSource = QueryExt(strSQL)    '设置表格数据源
        CourseGrid.FormatString = " | 编号 |  课程类型  |  课程名称  |     说明      "  '表头
    End If
End Sub



错误点:        For i = 0 To cmbCT.ListCount - 1    '查找“课程类型”的编号
            If cmbCT.List(i) = cmbCT.Text Then
                rs!ct_id = cmbCT.ItemData(i)  '更新课程类型编号        错误点在这
            End If



求破解 请检查数据库中的表名与字段名是否与代码中的表名与字段名一致
引用 1 楼 leftie 的回复:
请检查数据库中的表名与字段名是否与代码中的表名与字段名一致
一致啊
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,