前言:这部分是我在敲机房的时候,卡了一天或者两天的问题。尤其是”管理员--学生基本信息维护-修改“这个窗体,卡了两天才解决,有的可能是简单拿的问题,但是思路想好了,不会表达也是个麻烦,但是在小伙伴的帮助下,和自己的努力下,终于完成啦~
1.将数据导出excel表
①在工程中引用MicrosoftExcel类型库:
在“工程”菜单中选择“引用”,选择“Microsoft Excel 14.0 Objects Library” ,点击确定。
②代码展示:
Private SubcmdExportExcel_Click()
'定义循环变量
Dim i As Integer
Dim j As Integer
'定义表,工作薄,工作表
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
'显示表
Set xlApp =CreateObject("Excel.Application")
xlApp.Visible = True
'创建表簿和工作表
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)
' 循环
For i = 0 To MSHFlexGrid1.Rows - 1
For j = 0 To MSHFlexGrid1.Cols - 1
' 把myflexgrid1里面的值赋给工作表
MSHFlexGrid1.Row = i
MSHFlexGrid1.Col = j
xlSheet.Cells(i + 1, j + 1) =Trim(MSHFlexGrid1.Text)
Next
Next
End sub
更多思路,在这里推荐一篇文文师姐的博客链接,写的非常好~
http://blog.csdn.net/yanwenwennihao/article/details/52216866
2.快速清除textbox,和combobox中的内容
开始清楚的时候,通常会用到控件=“”就可以了,可以控件数量多的时候,可以设置代码,来快速清楚text和combox里的内容,会方便~
'清除的按钮,快速清除各个空间里的信息
PrivateSub cmdCls_Click()
Dim ctl As Control '定义一个变量,把控件装载到里面
For Each ctl In Controls
'删除所有text文本框内容
If TypeOf ctl Is TextBox Then ctl.Text = ""
Nextctl
'删除所有combobox文本框内容
For Each ctl In Controls
If TypeOf ctl Is ComboBox Then ctl.Text = ""
Next ctl
MSHFlexGrid1.Clear
EndSub
3.管理员--学生基本信息维护-修改
修改学籍信息
这个窗体的难点是,怎样把选中的MSHflexGrid行导入到修改窗体中,这个真的是想了好久,后来在张连康的帮助下,终于实现啦~
①先要在学生基本信息维护窗体中设置对修改窗体的调用
Private SubcmdModify_Click()
Dim txtsql As String
Dim mrc As adodb.Recordset
Dim msgtext As String
'判断是否选中了要修改的数据
With MSHFlexGrid1
If .RowSel = 0 Then
MsgBox "请选择要修改的数据", vbOKOnly + vbExclamation, "提示"
Exit Sub
Else
frmmodifystudentinfo.Show
End If
End With
End Sub
Private SubMSHFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y AsSingle)
cardNo = Trim(MSHFlexGrid1.Row)
cardNo =MSHFlexGrid1.TextMatrix(cardNo, 0)
End Sub
②这一步非常重要
同时要在模块中定义public cardno as cardno
③对修改窗体的设置
(1)
Private SubForm_Load()
Combosex.AddItem "男"
Combosex.AddItem "女"
Combostate.AddItem "使用"
Combostate.AddItem "不使用"
Combotype.AddItem "临时用户"
Combotype.AddItem "固定用户"
txtsql = "select * from student_infowhere cardno='" & Trim(cardNo) & "'"
Set mrc = executesql(txtsql, msgtext)
Call viewdata
End Sub
(2)
Private Subcommodify_Click()
txtsql ="select * from student_info where cardno='" & Trim(cardNo) &"'"
Set mrc = executesql(txtsql, msgtext)
‘此处没有mrc,addnew,否则更新数据会重复出现
mrc.Fields(1) = txtStudentNo.Text
mrc.Fields(2) = txtStudentName.Text
mrc.Fields(3) = Combosex.Text
mrc.Fields(4) = txtDepartment.Text
mrc.Fields(5) = txtGrade.Text
mrc.Fields(6) = txtClass.Text
mrc.Fields(0) = txtcardno.Text
mrc.Fields(7) = txtCash.Text
mrc.Fields(10) = Combostate.Text
mrc.Fields(8) = txtexplain.Text
mrc.Fields(14) = Combotype.Text
mrc.Update
MsgBox "修改学生信息成功!", vbOKOnly + vbExclamation, "警告"
Call viewdata
'防止每次运行都重复出现
Combosex.Clear
Combotype.Clear
Combotype.Clear
End Sub
(3)
Public Sub viewdata()
txtStudentNo.Text = mrc.Fields(1)
txtStudentName.Text = mrc.Fields(2)
Combosex.Text = mrc.Fields(3)
txtDepartment.Text = mrc.Fields(4)
txtGrade.Text = mrc.Fields(5)
txtClass.Text = mrc.Fields(6)
txtcardno.Text = mrc.Fields(0)
txtCash.Text = mrc.Fields(7)
Combostate.Text = mrc.Fields(10)
txtexplain.Text = mrc.Fields(8)
Combotype.Text = mrc.Fields(14)
End Sub
4.设置权限
一般用户只能看一看用户的;操作员可以看一般用户和操作员的;管理员可以看所以的。
总结:感谢你的阅读评论,陪伴我走过了机房~