一、前言
在项目验收的前一天晚上,我发现了一个宝贝。而且我还发现,居然有很多小伙伴没有注意到这个“修改”按钮!!!
二、功能
个人觉得它的功能很厉害:在“操作员工作记录”中查询到符合条件的数据后,如果想要对其进行相应的修改,就用到了“修改”这个功能。
它是这样工作滴:
1)在查询结果中选择一行数据,点击修改按钮;
2)被选择的信息赋值到修改窗体中,可以进行相应修改;
3)修改完成后,新的数据还要更新到查询结果中。
这就完成了修改。
”见字如面“:
1)选择:
2)修改:
3)点击“确定修改”后:
三、实现过程
我们一共只需要做四件事儿。
1.在查询结果中可以选中一行数据
代码:
MSHFlexGrid1.SelectionMode = flexSelectionByRow '单击时选择整行
MSHFlexGrid1.FocusRect = flexFocusNone '在当前但愿的周围画一个焦点框
MSHFlexGrid1.HighLight = flexHighlightWithFocus '该值决定了所选定的单元是否突出显示
Private Sub MSHFlexGrid1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
tmpselect = True
End Sub
3.在“修改”按钮中添加提示代码
Private Sub cmdEdit_Click()
Dim tmpselect As Boolean
'选择了数据才进行修改
If tmpselect = True Then
TmpCardno = MSHFlexGrid1.TextMatrix(MSHFlexGrid1.RowSel, 0) '选择一行数据
frmmodifysinfo.Show '显示修改信息窗体 '显示修改信息窗体
Else
MsgBox "请先选择数据,再进行修改!", , "温馨提示"
Exit Sub
End If
End Sub
4.在模块中定义2个全局变量
Public TmpCardno As String 'TmpCardno我称它为“临时卡号”,是您选择的那行数据的第0列的值
Public tmpLoad As String 'tmpLoad是在“修改信息窗体”添加的子过程
(
注:子过程怎么添加?答:“工具”----“添加过程”----命名、“添加子过程”)
子过程代码:
Public Sub tmpLoad()
Dim txtSQL As String
Dim MsgText As String
Dim mrc As ADODB.Recordset
txtSQL = "select * from student_Info where cardno='" & Trim(TmpCardno) & "'"
Set mrc = ExecuteSQL(txtSQL, MsgText)
If mrc.EOF Then
MsgBox "加载信息不存在,请确认后重新操作!", , "温馨提示"
Else
txtStudentno.Text = mrc!studentNo
txtName.Text = mrc!studentName
comboSex.Text = mrc!sex
txtDepartment.Text = mrc!department
txtGrade.Text = mrc!grade
txtClass.Text = mrc!Class
txtCardno.Text = mrc!cardno
txtCash.Text = mrc!cash
txtStatus.Text = mrc!Status
txtExplain.Text = mrc!explain
comboType.Text = mrc!Type
mrc.Close
End If
End Sub
”确认修改“:
Private Sub cmdOK_Click()
Dim txtSQL As String
Dim MsgText As String
Dim mrc As ADODB.Recordset
txtSQL = "select * from student_Info where cardno='" & Trim(TmpCardno) & "'"
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(txtDepartment.Text)
mrc.Fields(5) = Trim(txtGrade.Text)
mrc.Fields(6) = Trim(txtClass.Text)
mrc.Fields(7) = Trim(txtCash.Text)
mrc.Fields(8) = Trim(txtExplain.Text)
mrc.Fields(10) = Trim(txtStatus.Text)
mrc.Fields(14) = Trim(comboType.Text)
mrc.Update
mrc.Close
End If
Me.Hide
'修改信息后,重新加载到基本信息维护窗体的查询结果中
frmbasicinformationmaintenance.cmdInquire.Value = True
End Sub