【机房收费系统】之学生基本信息维护

学生基本信息维护主要包括两大功能查询和修改。这里的查询比之前做的简单查询稍稍复杂了点,此处要用到组合查询。要成功实现查询这一功能,首先要找到突破点,关键点就是组合关系。如果没有选择组合关系,便是一般的简单查询,反之,则是组合查询。在组合查询中,很重要的一点是将combobox中的中文字转换成英文。这里,我用到的是函数的转换——FiledName

此实现此功能的重要代码如下:

'查询满足条件的内容
    txtsql = "select * from student_info where "
'查询同时满足选择条件、输入内容的信息
    txtsql = txtsql & FiledName(comboFiledName1.Text) & Trim(comboOperate1.Text) & " " & Trim(txtContent1.Text) & " "

    '如果第一个组合关系不为空
    If Trim(comboRelation1.Text <> "") Then
        If Trim(comboFiledName2.Text) = "" Or Trim(comboOperate2.Text) = "" Or Trim(txtContent2.Text) = "" Then
            MsgBox "你选择了第一个组合关系,请输入第二行数据之后再查询!", vbOKOnly, "提示"
            Exit Sub
        Else

            txtsql = txtsql & FiledName(comboRelation1.Text) & " " & FiledName(comboFiledName2.Text) & Trim(comboOperate2.Text) & " " & Trim(txtContent2.Text) & " "

        '如果第二个组合关系不为空
        If Trim(comboRelation2 <> "") Then
            If Trim(comboFiledName3.Text) = "" Or Trim(comboOperate3.Text) = "" Or Trim(txtContent3.Text) = "" Then
                MsgBox "你选择了第二个组合关系,请输入第三行数据之后再查询!", vbOKOnly, "提示"
                Exit Sub
            Else

                txtsql = txtsql & FiledName(comboRelation2.Text) & " " & FiledName(comboFiledName3.Text) & Trim(comboOperate3.Text) & " " & Trim(txtContent3.Text) & " "

            End If
        End If
        End If
    End If

    '执行查询语句
    Set mrc = ExecuteSQL(txtsql, msgtext)

Public Function FiledName(strFliedName As String) As String
    
    Select Case strFliedName
    
        Case "卡号"
            FiledName = "cardno"
            
        Case "学号"
            FiledName = "studentno"
            
        Case "姓名"
            FiledName = "studentname"
            
            Case "性别"
            FiledName = "sex"
            
        Case "系别"
            FiledName = "depart"
            
            Case "年级"
            FiledName = "grade"
            
        Case "班级"
            FiledName = "class"
            
        Case "与"
            FiledName = "and "
            
        Case "或"
            FiledName = "or"
            
    End Select
    
End Function

第二大功能是修改。首先,单击修改按钮会自动跳到“修改学生信息”窗体,此时要明白修改的内容是查询到的其中一条记录进行修改,因此要对修改的记录进行选择,并将将该条记录显示在“修改学生信息”的窗体上。其次就是实现“修改学生信息”窗体中的两大功能:确定修改和取消修改。

思路理清了,就是代码的编写过程了。以下是点击修改按钮的重要代码:

'单击时选择整行
    myFlexGrid.SelectionMode = flexSelectionByRow
    
    '在当前单元的周围画一个焦点框
    myFlexGrid.FocusRect = flexFocusNone
    
    '该值决定了所选定的单元是否突出显示
    myFlexGrid.HighLight = flexHighlightWithFocus
        
    With myFlexGrid
        If .RowSel = 0 Then
            MsgBox "请选择要修改的数据!", vbOKOnly, "提示"
            Exit Sub
        Else
            If .RowSel > 0 Then
'                frmBasicInfoMaintain.Hide
                
            TmpCardno = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 0)
            frmEditStudent.txtSID = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 1)
            frmEditStudent.txtName = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 2)
            frmEditStudent.comboSex = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 3)
            frmEditStudent.txtDept = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 4)
            frmEditStudent.txtGrade = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 5)
            frmEditStudent.txtClass = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 6)
            frmEditStudent.txtCardNo = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 0)
            frmEditStudent.txtCash = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 7)
            frmEditStudent.txtStatus = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 9)
            frmEditStudent.txtExplain = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 8)
            frmEditStudent.comboType = myFlexGrid.TextMatrix(myFlexGrid.RowSel, 12)
            frmEditStudent.Show
                
            End If
        End If
    End With

不得不说SQL语句的功能很强大呀!在这个窗体中,我也学会了很多。刚开始,还很迷茫,加上给的系统实现的功能并不完美。不过还好,身边有这么多优秀的小伙伴,多多交流碰撞,思路一下子就打开了。“站在巨人的肩膀上!”哈哈

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值