第2章 学生基本信息管理系统的开发Word文件下载.docx
《第2章 学生基本信息管理系统的开发Word文件下载.docx》由会员分享,可在线阅读,更多相关《第2章 学生基本信息管理系统的开发Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。
![第2章 学生基本信息管理系统的开发Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-12/30/9a1ec643-129d-4e33-9706-1e375134c46b/9a1ec643-129d-4e33-9706-1e375134c46b1.gif)
rst.CursorType=adOpenKeyset
rst.Opensql
Setexesql=rst
Setrst=Nothing
Setconn=Nothing
EndFunction
公有函数亦定义在标准模块Module1.BAS中。
2.2.2数据库的设计
物理数据库名:
student
ODBC数据源名:
字段名
主键
数据类型
长度
必填
默认值
CHECK约束
说明
Sno
√
char
8
学号
Sname
5
姓名
Ssex
2
性别
Sbirthday
datetime
[1/1/1949
1/1/2010]
出生
日期
Sdept
20
信科系
系科
Sgrade
int
4
[1,4]
年级
2.2.1 S表(学生基本信息表)
username
用户名
password
密码
jibie
1
等级
2.2.2 yonghu表(学生基本信息表)
2.3效果和关键实现
2.3.1登陆模块(窗体名:
login)
图2-2登陆界面(窗体名:
关键技术:
1、操作数据库的专用函数exesql也应添加到标准模块Module1.BAS中并在VB在VB工程-----引用中添加Microsoft
ActiveX
Data
Objects
2.5
Library。
2、登陆错误次数限制3次不允许用户无止尽尝试密码,一旦错误超过三次程序自动结束,在窗体通用部分首先定义窗体级变量TIM,,核心程序如下:
'
验证操作员及密码
DimsqlAsString
sql="
select*fromyonghuwhereusername='
"
+Combo1.Text+"
andpassword='
+Text2.Text+"
Setrs=exesql(sql)
Ifrs.RecordCount>
0Then
Loadmain
main.Show
username=Combo1
UnloadMe
ElseIfTIM=3Then'
密码输错3次,退出系统
myval=MsgBox("
密码输入错误,请向系统管理员查询!
0,"
)
Ifmyval=vbOKThenEnd
Else
MsgBox"
输入错误,你还有"
&
3-TIM&
"
次机会"
TIM=TIM+1
EndIf
3、支持键盘操作,例TEXT2文本框中支持方向键代码如下:
PrivateSubtext2_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
IfKeyCode=vbKeyReturnThenCmdOk.SetFocus'
按回车键CmdOk获得焦点
IfKeyCode=vbKeyUpThenCombo1.SetFocus
IfKeyCode=vbKeyDownThenCmdOk.SetFocus
EndSub
4、密码框中输入任何字符以制定字符显示(例“*”),应设置其passwordchar属性的值即可。
2.3.2学生信息管理模块(窗体名:
main)
图2-3学生信息管理界面(窗体名:
1、采用adodc和datagrid显示数据。
操作步骤:
(1)选中工程-部件
(2)Adodc控件完成与各类数据库的连接(连接ODBC数据源student),可执行sql命令(select*froms)。
(3)datagrid控件完成数据的显示(指定其DataSource为Adodc控件)。
2、记录移动技术
首条:
Adodc1.Recordset.MoveFirst
未条:
Adodc1.Recordset.MoveLast
上一条(注意应判断是否已移到最前,如果不判断移到第1条记录后再往前移动,程序就出错),关键代码如下:
IfNotAdodc1.Recordset.BOFThen
Adodc1.Recordset.MovePrevious
EndIf
下一条(注意应判断是否已移到最后,如果不判断移到第后条记录后再往后移动,程序就出错),关键代码如下:
IfNotAdodc1.Recordset.EOFThen
Adodc1.Recordset.MoveNext
3、数据删除技术(应判断是否存在记录,否则不存在记录作删除操作程序报错)关键代码如下:
IfAdodc1.Recordset.RecordCount<
>
Dimsss
sss=Trim(Adodc1.Recordset.Fields("
sno"
))
IfMsgBox("
真的要删除["
+sss+"
]吗?
vbYesNo,"
系统友情提示"
)=vbYesThen
Adodc1.Recordset.Delete
4、查询技术:
在这里强调标准SQL语句的语法问题,对于字符数据匹配,要加单引号,而对于数值型字段不需要加,例如SNO(char)与text1是否匹配的sql语句为:
”select*fromswheresno=’”&
text1&
”’”,例如Sgrade(int)与text1是否匹配的sql语句为”select*fromswhereSgrade=”&
text1
5、聚集函数的使用(可以给聚集函数起别名),使用方法如下:
DimtsqltAsString
sqlt="
selectcount(*)as总人数fromswhere"
Combo1.Text&
Combo2.Text&
Text1&
Setrs=exesql(sqlt)'
调用执行SQL函数,已经在模块中添加
Text2.Text=rs("
总人数"
5、增加修改技术(共用界面update)
增加全局变量PublicFlagAsInteger,Flag=0'
增加记录,Flag=1'
修改记录
IfFlag=1Then
Calledit‘调用编辑过程
Else
Calladd‘调用增加过程
增加记录时,程序中应考虑主键,空值,check等约束,因此程序中必须增加容错判断,代码如下:
Subadd()'
注意也可以直接使用insert语句
DimsqlAsString
select*fromswheresno='
Text1.Text&
IfText1.Text="
OrText2.Text="
Then
MsgBox"
学号姓名不能空"
ExitSub
IfDTPicker1.Value>
#1/1/2010#OrDTPicker1.Value<
#1/1/1949#Then
出生日期不合法(1949-1-1~2010-1-1)!
Ifrs.RecordCount=0Then
rs.AddNew
rs("
)=Text1
Sname"
)=Text2
IfOption1.Value=TrueThen
Ssex"
)="
男"
女"
Sbirthday"
)=DTPicker1.Value
Sdept"
)=Text3
Sgrade"
)=CInt(Combo1.Text)
rs.UPDATE
增加记录成功"
学号重复无法添加!
EndSub
2、编辑记录时,首先加载被编辑的数据到各控件,因此在窗体的相应事件中添加:
PrivateSubForm_Load()
Combo1.AddItem"
1"
2"
3"
4"
IfFlag=1Then'
修改数据,首先加载该条数据FLAG全局变量。
Text1=main.Adodc1.Recordset.Fields("
Text1.Enabled=False'
学号无法更改
Text2=main.Adodc1.Recordset.Fields("
sname"
Ifmain.Adodc1.Recordset.Fields("
ssex"
Option1.Value=True
Option2.Value=True
DTPicker1.Value=main.Adodc1.Recordset.Fields("
sbirthday"
Text3=main.Adodc1.Recordset.Fields("
sdept"
Combo1.Text=main.Adodc1.Recordset.Fields("
sgrade"
具体编辑过程如下:
Subedit()'
注意也可以直接使用update语句
rs("
增加更新成功"
6,权限限制技术:
PrivateSubForm_Activate()
权限判断
1级权限所有权限
等级2:
拥有数据查询,增加权限
等级3:
拥有数据查询
username&
Ifrs("
jibie"
)=2Then
Command3.Enabled=False
Command4.Enabled=False
ElseIfrs("
)=3Then
Command5.Enabled=False
7,报表打印技术(在报表中添加相应控件):
PrivateSubDataReport_Initialize()
Setrs1=exesql(sqltext)
SetDataReport1.DataSource=rs1'
设置DataReport的数据源
DataReport1.Sections("
Section1"
).Controls("
text1"
).DataField="
’字段名
text2"
text3"
text4"
DataReport1.Refresh
2.3.3增加、修改学生信息模块(窗体名:
update)
图2-4增加学生信息界面(窗体名:
update)
图2-5修改学生信息界面窗体名:
update
2.3.4查询打印报表模块(窗体名:
datareport1)
图2-6查询打印报表界面(datareport1)
2.3.5权限管理模块(窗体名:
图2-7权限管理界面(窗体名:
quanxian)
2.4本实例小结
本章通过一个简单完整的应用程序开发实例,介绍了数据库应用系统开发中常用的一些技术,适合C级学生完成,涵盖了SQL的使用,常用控件的使用,报表的使用,我们在开发过程中,应充分考虑到到用户的需要,尽量的方便用户使用,例如,在这个例子中支持了键盘操作。
当然本系统只是一个示例,在信息表述上不够完备,通用性不强,比如权限设置不够灵活,一些模块信息不够详细,读者可以根据实际情况来完善我们的例子,把它做得更加人性化,智能化,通用化。
第3章医院体检结论查询打印系统(C级)