机房——操作员——学生基本信息维护

学生基本信息维护这个窗体,主要实现两项功能,其一是组合查询功能的实现,其二便是对查询出的信息可以选择并进行修改,组合查询窗体在上篇博客已经分享过了,小伙伴可以查看上篇博客,今天主要分享的是,如何实现将查询到的信息,能够进行修改这个功能。
我们可以将这个功能在分解下,分解成先能选中一行数据,在将数据显示到另一个窗体中。这样分开来进行,将问题简单化,一点一点来实现。
下图为对查询结果进行选择。
在这里插入图片描述
从上图我们可以看出,当选中某行查询数据后,改行将变成蓝色背景。如何将选中数据行变成蓝色字体呢?这就要在MSHFlexGrid1控件上“动手脚”了,处理问题要从根上解决,我用的是最简单直接打的方法:右击MSHFlexGrid1控件,选择属性,对于突出显示,焦点区域,选择模式这几项分别选择2,0,1的属相即可,其他属性不用动
如图
在这里插入图片描述
好了,设置完属性后,便可以进行选择了,接下来就是对选择的数据行进行赋值修改了。
还是分成两部分,一是实现赋值功能,二是修改学生信息,也就是说,将选择的数据行赋值到另一个新的窗体上, 这个窗体,我们命名为“学生信息”。一开始我的想法是,在学生信息窗体添加代码,进行赋值,“修改”命令按钮,只是单纯的传递命令,可是没有赋值成功,也不报错,也不显示信息,几番周折后,发现问题原来是处在了命令按钮上,所有的赋值代码是在修改按钮上添加的。赋值在点击“修改”按钮的那一刻便开始了,而“学生信息”窗体只是显示信息
部分代码展示

Option Explicit
'定义临时卡号
Public TmpCardno As String

Private Sub cmdAlter_Click()
    TmpCardno = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 0)                 '临时卡号便是选中数据行的卡号
    frmstuNews.txtStudentNo = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 1)   '学号赋值
    frmstuNews.txtClass = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 6)       '班级赋值
    frmstuNews.txtName = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 2)
    frmstuNews.ComboSex = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 3)
    frmstuNews.txtDept = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 4)
    frmstuNews.txtGrade = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 5)
    frmstuNews.txtCardNo = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 0)
    frmstuNews.txtBalance = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 7)
    frmstuNews.ComboStatus = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 9)
    frmstuNews.txtExplain = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 8)
    frmstuNews.ComboType = myFlexgrid.TextMatrix(myFlexgrid.RowSel, 10)

    frmstuNews.Show
    Unload Me
   
    Exit Sub
        
     frmstuNews.Show     '完成赋值后,打开学生信息窗体,加载信息
End Sub

从代码可以看出,要先定义一个临时卡号,用于存储选中的数据行
下图为赋值成功图
在这里插入图片描述

实现了赋值的功能后,就下来便是修改学生信息的功能,这个功能,相对简单,我们在做学生的时候也有接触,就不再多赘述,直接上代码
首先,定义一个临时卡号,用于和上个窗体建立连接

'定义临时卡号
Public TmpCardno As String

确定修改按钮部分

   txtsql = "select * from student_Info where cardno='" & Trim(txtCardNo) & "'"
        Set mrc = ExecuteSQL(txtsql, msgtext)
        If Not (mrc.BOF Or mrc.EOF) Then 
            mrc.Fields(0) = Trim(txtCardNo.Text)
            mrc.Fields(1) = Trim(txtStudentNo.Text)
            mrc.Fields(2) = Trim(txtName.Text)
            mrc.Fields(3) = Trim(ComboSex.Text)
            mrc.Fields(4) = Trim(txtDept.Text)
            mrc.Fields(5) = Trim(txtGrade.Text)
            mrc.Fields(6) = Trim(txtClass.Text)
            mrc.Fields(7) = Trim(txtBalance.Text)
            mrc.Fields(8) = Trim(txtExplain.Text)
            mrc.Fields(9) = Trim(frmLogin.txtUserID.Text)
            mrc.Fields(10) = Trim(ComboStatus.Text)
            mrc.Fields(11) = "未结账"
            mrc.Fields(12) = Date
            mrc.Fields(13) = Time
            mrc.Fields(14) = Trim(ComboType.Text)
            mrc.Update
                'MsgBox "修改信息成功", 48, "提示"
            mrc.Close         
      Unload Me
        frmBasicInfoMaintain.Show
        '修改信息后,重新加载到基本信息维护窗体的查询结果中

加载窗体部分

txtsql = "select * from student_Info where cardno='" & Trim(txtCardNo) & "'"
Set mrc = ExecuteSQL(txtsql, msgtext)
If mrc.EOF Then
    MsgBox "加载信息不存在,请确认后重新操作!", , "温馨提示"
Else
    txtStudentNo.Text = mrc!studentno
    txtName.Text = mrc!studentname
    ComboSex.Text = mrc!sex
    txtDept.Text = mrc!department
    txtGrade.Text = mrc!grade
    txtClass.Text = mrc!Class
    txtCardNo.Text = mrc!cardno
    txtBalance.Text = mrc!cash
    ComboStatus.Text = mrc!Status
    txtExplain.Text = mrc!explain
    ComboType.Text = mrc!Type
    mrc.Close

后期陆续更新,欢迎大家评论区留言!

猜你喜欢

转载自blog.csdn.net/qq_42758288/article/details/84960835