《教务信息管理系统VB程序设计》的教学思路 (2010年高职单招计算机专业技能测试题)
福安市民族职业中学———冯建锋
摘要:针对2010年高职单招计算机专业技能测试题,结合我省高职单招VB程序设计教学考纲要求进行分析。针对我校学生实际情况写出《教务信息管理系统VB程序设计》的教学思路(要求)
关键词:信息管理系统,VB程序设计,教学思路 程序思路,需要完成一个教务信息管理系统。
1:完成页面的设计。首先创建一个工程,工程中自动生成一个Form,也就是我们常说的页面,并给这个页面的名称设置成Form1,用以区分系统中其他的页面。通过编辑栏中的,Label工具,在页面中间插入一段文字,为“教务管理系统”。因为完成一个教务管理系统,需要完成的内容有学生信息的录入,学生信息的修改,学生信息删除以及学生信息的查询。于是在该页面使用Button工具,放置四个按钮并将四个按钮的Caption分别设置成“学生录入”,“学生修改”,“学生删除”和“信息统计”。且名称分别设置成Command1,Command2,Command3,Command4。依据程序要求我们可以知道,需要完成学生录入,学生修改,学生删除,和信息统计的各个功能,就必须存在有四个排版各不相同的页面,来满足各个功能的需求,于是在工程的树形菜单下选择窗体,再选择新建窗体。重复操作四次,成功建立了四个Form。分别命名为Form2,Form3,Form4,Form5用来区分和其他的Form。上面提到过的设置了四个按钮,作为按钮则是拿来点击的,而按照我们的思路,四个按钮分别代表了要完成的四项功能,那么可以得出每点击一个按钮,就应该要弹出相对应的页面来提供给用户恰当的服务。 于是双击按钮,将自动生成代码如下: Private Sub Command1_Click() ····· End Sub 其中Command1是代表按钮的名称整个函数就是代表了某一个按钮被点击之后应该执行的内容。End表示此函数结束。那么就应该写入对应的内容。完成之后的代码如下: Private Sub Command1_Click()
Form2.Show End Sub Private Sub Command2_Click()
Form4.Show End Sub Private Sub Command3_Click()
Form3.Show End Sub Private Sub Command4_Click() Form5.Show End Sub 分别代表了不同的按钮点击之后不同的执行的位置。其中Form.Show则代表对于某一个页面进行显示的功能。以上第一段表示了点击按钮1显示页面2。其他意思同上就不赘述。 这样就完成了主页面:
我们可以知道的是还需要完成四个功能,学生录入,学生修改,学生删除和信息统计。 完成学生录入的设计:使用工具栏中的Label,Text,和button以及Adodc进行页面的设计。即可。完成页面如下:。
其中Adodc原本工具栏中并没有,需要添加控件。 按ctrl+T或者在菜单“工程”-“组件”里选择
Microsoft ADO Data Control 6.0 (SP6) (OLEDB) 选中之后,就可以在工具栏中选择该控件进行拖拽。其中Adodc中基本连接方法: Adodc1.ConnectionString = \"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=\" + App.Path + \"\\hkmdck\\db1.mdb\"//字符串的连接。Adodc直接双击,可以在栏目中选定数据库的路径也就是Acce文件的路径。就会自动生成ConnectionString。 本页面的程序代码如下:
Private Sub Command1_Click()//点击按钮触发函数。
If Trim(Text1.Text) \"\" And Trim(Text2.Text) \"\" And Trim(Text3.Text) \"\" And Trim(Text4.Text) \"\" And Trim(Text5.Text) \"\" And Trim(Text6.Text) \"\" Then
Adodc1.RecordSource = \"select * from stuInfo\"
Adodc1.Refresh
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields(\"stuNo\") = Trim(Text1.Text)
Adodc1.Recordset.Fields(\"stuName\") = Trim(Text2.Text)
Adodc1.Recordset.Fields(\"sex\") = Trim(Text6.Text)
Adodc1.Recordset.Fields(\"age\") = Trim(Text3.Text)
Adodc1.Recordset.Fields(\"tel\") = Trim(Text4.Text)
Adodc1.Recordset.Fields(\"score\") = Val(Trim(Text5.Text))
Adodc1.Recordset.Update
Adodc1.Recordset.Requery
Adodc1.Refresh
Text1.Text = \"\"
Text2.Text = \"\"
Text3.Text = \"\"
Text4.Text = \"\"
Text5.Text = \"\"
Text6.Text = \"\"
MsgBox \"添加成功\", vbOKOnly, \"系统提示\" Else: MsgBox \"信息未填写完整\", vbOKOnly, \"系统提示\" End If End Sub
对于以上解析如下:对于这个页面在业务上我们可以知道,需要点击录入按钮,那么就将各个Text中的内容写入数据库中,那么在数据库中就会生成一条记录,也就是某一个学生的信息情况,那么就完成了学生信息的录入。 首先文件进行了一个IF判断:
If Trim(Text1.Text) \"\" And Trim(Text2.Text) \"\" And Trim(Text3.Text) \"\" And Trim(Text4.Text) \"\" And Trim(Text5.Text) \"\" And Trim(Text6.Text) \"\" Then “中间内容先省略”
Else: MsgBox \"信息未填写完整\", vbOKOnly, \"系统提示\" End If End Sub
如果Text1至Text6的内容不等于(代表不等于)空字符串。也就是各个内容都输入了的。 就执行省略的了中间内容。如果有一个为空,也就是信息未填写全。就执行Else:中的内容 也就是MsgBox \"信息未填写完整\", vbOKOnly, \"系统提示\"。这个代表了弹出一个对话框,其中文字写了“信息未填写完整”,按钮上面显示 vbOKOnly。 之后结束IF语句,并退出函数。 现在对于省略部分的函数进行解析: Adodc1.RecordSource = \"select * from stuInfo\"//从stuInfo表格中做一个查询
Adodc1.Refresh
Adodc1.Recordset.AddNew//新增信息
//表格也就是提供的Acce的数据库中提供给了stuNo,stuName等字段名,以下就是在记录集中将Text1中的字段写入到stuNo的记录集里,并以此类推,完成该记录集的填充。
Adodc1.Recordset.Fields(\"stuNo\") = Trim(Text1.Text)
Adodc1.Recordset.Fields(\"stuName\") = Trim(Text2.Text)
Adodc1.Recordset.Fields(\"sex\") = Trim(Text6.Text)
Adodc1.Recordset.Fields(\"age\") = Trim(Text3.Text)
Adodc1.Recordset.Fields(\"tel\") = Trim(Text4.Text)
Adodc1.Recordset.Fields(\"score\") = Val(Trim(Text5.Text))
//到这里就成功的完成了记录集的填写
Adodc1.Recordset.Update//将字段更新到数据库中
Adodc1.Recordset.Requery Adodc1.Refresh //将页面中的Text的内容填写为空
Text1.Text = \"\"
Text2.Text = \"\"
Text3.Text = \"\"
Text4.Text = \"\"
Text5.Text = \"\"
Text6.Text = \"\" MsgBox \"添加成功\", vbOKOnly, \"系统提示\" //弹出方框,表示数据填写成功。
到此数据全部填写完成。并写入数据库。也完成了这个页面的功能。 之后的几个页面的内容类似。其中重点在于DataGrid和Adodc的绑定。 对于DataGrid和Adodc的绑定在这里举一个小小的例子如下: 1.ADODC1是数据库连接部件
2.Datagrid1是显示数据表中内容的表格
ADODC1需要设置它连接的是哪个数据表.(Adodc1.RecordSource = \"select * from 表名\") Datagrid1需要设置的是它的数据源来自ADODC1.(Set DataGrid1.DataSource = Adodc1) 然后2个部件都要刷新!Refresh
Adodc1.ConnectionString = \"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\" & App.Path & \"\\1.mdb;Persist Security Info=False\" Adodc1.CommandType = adCmdText Adodc1.RecordSource = \"select * from table\" Adodc1.Refresh Set DataGrid1.DataSource = Adodc1 DataGrid1.Refresh
这个之后,Datagrid1就可以显示1.mdb中table表的内容。
以下是本程序中修改页面的代码如下: Private Sub Command2_Click()
Dim str As String//定义str
Dim stuNo As String
Dim sql As String
stuNo = Text1.Text//获得学号
If stuNo \"\" Then
Adodc1.Recordset.Filter = \"stuNo = \'\" + stuNo + \"\'\"//通过学号机型查询
str = Adodc1.Recordset.Fields(\"sex\")
If str \"男\" Then//如果查询出来的sex不等于男
Adodc1.Recordset.Fields(\"sex\") = \"男\"
Adodc1.Recordset.Update//将sex字段设置为男,并进行更新
Else
Adodc1.Recordset.Fields(\"sex\") = \"女\"
Adodc1.Recordset.Update//否则就将字段设置为女,并进行更新
End If
Else:
MsgBox \"学号未输入\", vbOKOnly, \"系统信息\"
End If
Adodc1.Recordset.Update//结束IF之后,更新一下Adodc
DataGrid1.Refresh//因为Adodc更新了,而DataGrid和Adodc进行了一次绑定,所以也需要对其进行更新。
End Sub
Private Sub Form_Load()//这个函数是页面载入的时候执行的函数,因为页面载入的时候本身就需要对表格的内容进行填充,将表格的内容填充为数据库中的内容。所以进行页面载入的时候,首先对DataGrid进行更新。
DataGrid1.Refresh End Sub
删除的代码和修改的代码类似,其中的区别在于逻辑判断的区别了最终执行的区别,一个是update一个则是delete。代码如下: Private Sub Command2_Click()
Dim str As String
Dim stuNo As String
Dim sql As String
stuNo = Text1.Text
If stuNo \"\" Then//如果学号不为空,也就是该学生信息存在,也只有存在才可以删除
Adodc1.Recordset.Filter = \"stuNo = \'\" + stuNo + \"\'\"
Adodc1.Recordset.Delete//删除操作
Else:
MsgBox \"学号未输入\", vbOKOnly, \"系统信息\"
End If
Adodc1.Recordset.Update//同更新类似不做赘述
DataGrid1.Refresh End Sub Private Sub Form_Load() DataGrid1.Refresh End Sub
最后是查询的页面,这个页面稍稍有一点麻烦,因为对于其他页面逻辑较为复杂。代码如下: Private Sub Command1_Click()//点击按钮,执行一下函数
//对字符串进行定义
Dim stuNo As String
Dim StuName As String
Dim ScoreLow As Double
Dim ScoreHigh As Double
Dim sql As String
stuNo = Text1.Text
StuName = Text2.Text //因为查询信息,是根据多个条件进行查询的,在这里进行了一个定义,查询条件主要有一下几项,既是学生学号,学生姓名,学生成绩,学生年龄,以及学生性别。
If stuNo \"\" Then//如果学号不为空,就将SQL语句变成之下的语句,用于查询学生学号。
sql = \"select * from stuInfo where stuNo = \'\" + Trim(stuNo) + \"\'\"
End If
If StuName \"\" Then//如果姓名不为空,就将SQL语句变成之下的语句,用于查询学生姓名。
sql = \"select * from stuInfo where stuName = \'\" + Trim(StuName) + \"\'\"
Text1.Text = \"\"
End If
If Text3.Text \"\" And Text4.Text \"\" Then//这里是分数
ScoreLow = Text3.Text
ScoreHigh = Text4.Text
sql = \"select * from stuInfo where score >= \" + Trim$(ScoreLow) + \" and score
Text1.Text = \"\"
Text2.Text = \"\"
End If
If Text5.Text \"\" And Text6.Text \"\" Then//年龄
sql = \"select * from stuInfo where age >= \" + Trim$(Text5.Text) + \" and age
End If
If Text7.Text \"\" Then//性别
sql = \"select * from stuInfo where sex = \'\" + Trim$(Text7.Text) + \"\'\"
End If
Adodc1.RecordSource = sql
Adodc1.Refresh//更新数据集
Label7.Caption = \"满足条件的一共有 \" + Trim$(Adodc1.Recordset.RecordCount) + \" 人\"
DataGrid1.Refresh//更新显示信息
End Sub
典型案例:2010届我校计算机专业36名考生参加高职单招,80分以上达27人。其中罗幼凤同学得满分100分。被福建师大本科计算机网络专业录取。
心得体会:
请按以上要求补充审改。而后发表。