数据库系统课程设计报告
题目: 酒店管理系统
课程代号: 0680036 课程名称:数据库系统课程设计 学号: 姓名: 班级:
指导教师
完成日期:2011年4月
计算机科学与工程系
目录
第一章 引言
第二章 系统分析与设计
2.1需求分析 2.2结构设计 2.3数据库设计
第三章 系统开发及实现
3.1 创建主窗体 3.2 创建子窗体 3.3 建立公共模块
第四章 总结
参考文献
附录(附部分源代码)
2
计算机科学与工程系
第一章 引言
酒店管理系统是现代服务行业不可缺少的一个组成环节。
酒店管理信息系统是一个由人、计算机和数据库组成的进行酒店经营管理的系统,通过对信息的收集、传递、整理、加工、维护和使用,提高管理水平和效率,从而实现酒店管理的自动化、规范化和人性化。
本文简要介绍了基于Microsoft和VB程序语言开发实现的酒店管理系统,着重阐述了该系统开发实现过程,从系统的需求分析、方案论证、模块设计、数据设计、详细设计到系统测试等各个环节都进行了较为详尽的分析和描述。
关键词:酒店管理系统、Access、数据库、VB
3
计算机科学与工程系
第二章系统分析与设计
2.1需求分析
在进行一个项目的设计之前,首先要进行必要的需求分析。酒店需要管理各种人员和入住信息,希望实现酒店的信息化管理,通过建立一个酒店管理系统来管理酒店的日常业务。其完成功能如下:
1、能够实现对客人的登记信息查询,包括逐个浏览,以及对客人资料的增加、删除和编辑操作。
2、能够的酒店人员值班情况进行管理。
3、管理人员也可以直接增加和删除用户信息。 系统功能模块图如图1所示。
酒店管理系统 人事管理 客户入住 客户信息查系统管理 客户投诉 值班管理 散团客队入入住 1 系统的功能模块图住 图 新增用户 密码修改
根据功能模块图设计划出的实体有散客入住实体、团队入住实体、投诉管理实体、值班管理实体。
散客入住实体E-R如图2所示。 团队入住实体E-R如图3所示 投诉管理实体E-R图如图4所示 值班管理实体E-R图如图5所示
4
计算机科学与工程系
房价 姓名 图2 散客入住实体E-R图
团队名称 图3 团队入住实体E-R图
投诉日期 图4 投诉管理实体E-R图 编号 投诉对象 备注 团队入住实体 负责人姓名 房间号码 离店日 抵达日 证件号码 房号 散客入住实体 性别 入住天数 抵达日 证件号码
投诉管理实体 5 投诉内容 计算机科学与工程系
值班开始日期
值班截止时间 值班人 值班管理实体 记事 值班开始日期 值班截止日期
图5 值班管理实体E-R图
2.2结构设计
使用windows操作系统、开发维护系统即visual basic软件系统、一套数据库系统Access即可。他们之间的关系如图6所示。
数据库 开发人员 数据库应用程序 用户 用户 用户
图6 结构关系图
根据上面的需求分析,设计好数据库系统,然后开发应用程序可以考虑窗体的系统,每一个窗体实现不同的功能,可以设计以下几个模块。
·客人入住模块:用来实现登记入住的增加、删除和修改等操作。 ·客人信息查询模块:用来实现对客人信息的浏览和查询。
·值班管理模块:用来实现对工作人员值班情况的增加、删除和修改等操作。 ·系统管理模块:用来实现用户的增加、删除和修改等操作。
2.3
数据库设计
6
计算机科学与工程系
这里数据库采用access,用ADO作为连接数据对象。
2.3.1建立access数据库
启动access,建立一个空的数据库jiudian.mbd,如图7所示。
图7 jiudian.mdb
使用程序设计器建立系统需要的表格如下:散客资料表,如图8所示。
团队资料表,如图9所示。 值班管理表,如图10所示。 系统管理表,如图11所示。 投诉管理表,如图12所示。
7
计算机科学与工程系
图8 散客资料表 图9 团队资料表
图10 值班管理表 图11系统管理表
图12 投诉管理表
2.3.2连接数据库
在程序设计的公共模块中,先定义ADO链接对象。语句如下: Public conn As New ADODB.Connection '标记连接对象
然后在子程序中,用如下的语句即可打开数据库: Dim connectionstring As String
8
计算机科学与工程系
connectionstring = \"provider=Microsoft.Jet.oledb.4.0;\" & _ \"data source=jiudian.mdb\" conn.Open connectionstring
图12 引用ADO连接数据库
9
计算机科学与工程系
第三章系统开发与实现
这是一个多文档界面(MDI)应用程序,如图13所示,可以同时显示多个文档,每个文档显示在各个窗体中。MDI应用程序中常有包含子菜单“窗体”选项,用于在窗体或文档间进行切换。菜单应用程序中,有5个菜单选项,每个选项对应着E-R图中的一个子项目。
图13 多文档界面
3.1 创建主窗体
首先创建一个工程,命名为酒店管理系统。该窗体属性如表1所示。
表1 主窗体的属性
属性 Caption WindowState 值 酒店管理系统 Maxsize
10
计算机科学与工程系
图14 菜单编辑器
在主窗体的工具栏中,选菜单编辑器,创建如图14所示的菜单结构。 创建一些菜单项,如表2 所示。
表2 菜单项表 菜单名称 MenuItem1 MenuItem2 MenuItem3 MenuItem4 MenuItem5 MenuItem6 MenuItem7 MenuItem8 MenuItem9 MenuItem10 MenuItem11 MenuItem12
主窗体如图15所示。
Text属性 系统管理 新增用户 修改密码 退出系统 客人入住 散客入住 团队入住 客人信息查询 人事管理 客户投诉管理 值班管理 关于 功能描述 顶级菜单,包含子菜单 调出用户窗体 调出密码窗体 推出 顶级菜单,包含子菜单 调出散客入住信息窗体 调出团队入住信息窗体 调出查询窗体 顶级菜单,包含子菜单 调出客户投诉信息窗体 调出值班信息窗体 调出对系统的要求
图15 主窗体
11
计算机科学与工程系
3.2 创建各个子窗体
“工程”—“添加窗体”命令,添加子窗体。
把窗体的属性MIDChild改成Ture,这个窗体则成为MID子窗体。 这个项目中,要创建的子窗体如表3所示。
下面分别是各个子窗体,以及他们所使用的控件,如表3所示。
表3 所有子窗体 子窗体名 散客入住 团队入住 增加用户 修改密码 客人资料 查询输出 关于 用户登录 客人投诉管理 值班管理
Text frmonly_client Frmdouble_client frmadduser frmchangepwd frmdatamanage frmfind frmAbout frmlogin frmkhts frmzhiban 3.2.1散客入住子窗体
散客入住子窗体如图16所示,其控件如表4所示。
图16 散客入住子窗体
12
计算机科学与工程系
表4 散客入住子窗口控件 控件类型 控件Name Frame1 Frame2 DateGrid1 Commend1 Commend2 Commend3 Commend4 Commend5 控件Text 散客入住 (空) (空) 新增记录 修改记录 删除记录 取消 退出 Frame DateGrid Commend
3.2.2增加用户子窗体
增加用户子窗体如图17所示,其控件如表5所示。
图17增加用户子窗体
表5 增加用户控件表 控 件 类 别 Label TextBox ComboBox CommandButton
控件Name Label1 Label2 Label3 Label4 Text1 Text2 Text3 Comb1 Command1 Command2 控件Text 输入用户名 输入密码 确认密码 选择权限 (空) (空) (空) (空) 确认 取消 3.2.3修改密码子窗体
修改密码子窗体如图18所示,其控件如表6所示。
13
计算机科学与工程系
图18修改密码子窗体
表6修改密码窗体
控 件 类 别 Label TextBox CommandButton 控件Name Label1 Label2 Text1 Text2 Command1 Command2
控件Text 新密码 确认密码 (空) (空) 确定 取消 3.2.4团队入住子窗体
团队入住子窗体如图19所示,其控件如表7所示
图19 团队入住子窗体
14
计算机科学与工程系
表7 团队入住子窗口控件
控件类型 Frame DataGrid CommandButton
控件Name Frame1 Frame2 DataGrid1 Command1 Command2 Command3 Command4 Command5 控件Text 团队入住 (空) (空) 新增记录 修改记录 删除记录 取消 退出 3.2.5查询子窗体
查询子窗体如图20所示,其控件如表8所示
图20 查询子窗体 表8 查询子控件 控件类别 OptionButton Lable Lable Combo(0 )CoboBox 控件Name Option1 Option2 Lable1 Lable2 Lable3 Lable4 Lable5 Lable6 Lable7 Lable8 Lable9 Lable10 Combol 控件Text 按房号 按抵达日 从 到 从 年 月 日 到 年 月 日 (空) 15
计算机科学与工程系
Combo(1 )CoboBox Combo(0 )CoboBox Combo(1 )CoboBox Combo(0 )CoboBox Combo(1 )CoboBox Combo(0 )CoboBox Combo(1 )CoboBox CommandButton Combol Comboy Comboy Combom Combom Combod Combod Command1 Command2 (空) (空) (空) (空) (空) (空) (空) 查询 取消
3.2.6用户登录子窗体
用户登录子窗体如图21所示,其控件如表9所示
图21用户登录子窗体
表9用户登录子窗口控件 控件类别 Label TextBox CommandButton 控件Name Label1 Label2 Text1 Text2 Command1 Command2 控件Text 用户名 密码 (空) (空) 确定 取消 3.2.7值班管理子窗体
值班管理子窗体如图22所示,其控件如表10所示
16
计算机科学与工程系
图22值班管理子窗体 表10值班管理子窗口控件 控件类别 Frame Datagrid CommandButton 控件Name Frame1 DataGrid1 CmdAdd CmdDcl CmdCanccl 控件Text 值班管理 (空) 增加记录 删除记录 取消 3.2.8投诉管理子窗体
投诉管理子窗体如图23所示,其控件如表11所示
17
计算机科学与工程系
图23投诉管理子窗体
表11 投诉管理子窗体控件 控件类别 Frame 控件类别 Label DataGrid CommandButton Adodc Text Text1 Text2 Text3
控件Name Frame1 Frame2 控件Name Label1 Label2 Label3 Label4 Label5 Label6 Label7 DataGrid1 控件属性 Caption Caption 控件属性 Caption Caption Caption Caption Caption Caption Caption DataSource AllowAddNew AllowDelete AllowUpdata AllowArrows 控件属性值 投诉信息 (空) 控件属性值 投诉编号 投诉日期 投诉对象 投诉内容 受诉部门 受诉日期 处理意见 Adodc1 Ture Ture Ture Ture (空) (空) (空) (空) (空) (空) (空) Jiudian.mdb 投诉管理 (空) 投诉编号 Adodc1 (空) 投诉日期 Adodc1 (空) 投诉对象 Adodc1 (空) 投诉内容 Adodc1 (空) 受诉部门 Command1 Command2 Command3 Command4 Command5 Command6 Command7 Adodc1 上一条 下一条 第一条 末一条 增加记录 删除记录 取消 CommunationString RecordSource Text DataField DataSource Text DataField DataSource Text DataField DataSource Text DataField DataSource Text DataField 18
Text4 Text5 计算机科学与工程系
Text Text6 Text7 DataSource Text DataField DataSource Text DataField DataSource Adodc1 (空) 受诉日期 Adodc1 (空) 处理意见 Adodc1 3.3 建立公共模块
建立公共模块可以提高代码效率,同时使得修改和维护代码都很方便。创建公共模块的步骤如下:
(1)“工程”—“添加模块”
(2)选择模块图标后,打开,着这个模块已经添加到项目中了。默认情况下名为modulel。
(3)在模块中定义整个项目的公共变量。
Public conn As New ADODB.Connection '标记连接对象 Public userID As String '标记当前用户ID Public userpow As String '标记用户权限 Public find As Boolean '标记查询 Public sqlfind As String '查询语句 Public rs_data1 As New ADODB.Recordset Public findok As Boolean
Public frmdata As Boolean
19
计算机科学与工程系
第四章 总结
通过本次设计,设计的基本思想方法,能够编写小型的数据库程序,通过数据库系统应用课题的实践,进一步提高分析问题解决问题的能力及软件开发过程的能力。
遗憾的是对数据库设计工作的认识仅仅停留在表面,只是在参考着书做,借被人的思想,亲自操作却尽力很多困难,所以未能领会其精髓。但时通过这次数据库设计,加深了我对数据库设计基本知识的理解,丰富了我做数据库设计的实际技术,虽然学的不精,但让我对数据库产生了浓厚的兴趣,也使我对数据库有了深层次的感性和理性认识。认识到要做好一项工作,既要注重理论知识的学习,更重要的是要把实践与理论两者紧密相结合。
参考文献
[1] 王 珊,萨师煊编译.数据库系统概论. 北京:高等教育出版社,1983 [2] 张跃延,王小科,许文武. 数据库开发案例精选. 人民邮电出版社,2007, [3] Connolly.T. 数据库设计/设计师实现与管理. 电子工业出版社,2006 [4]钱雪忠,甸海驰,陈国俊编著.数据库原理及技术课程设计. 北京:清华大学
出版社,2009
[5]谭浩强编译. Visual basic程序设计.北京:清华大学出版社,2006
20
计算机科学与工程系
附录:
代码设计
.
1主窗体代设计
本项目中,子菜单事件都是click事件,主窗体代码。
下面是响应“新增用户”子菜单click事件,调出新增用窗体代码。 下面是响应“新增用户”子菜单click事件,调出新增用窗体代码。 下面是响应“新增用户”子菜单click事件,调出新增用窗体代码。 下面是响应“新增用户”子菜单click事件,调出新增用窗体代码。 Private Sub about_Click() frmAbout.Show End Sub
Private Sub add_user_Click() frmadduser.Show End Sub
Private Sub double_check_Click() frmfind_double.Show End Sub
Private Sub check_Click() frmfind.Show End Sub
Private Sub double_client_Click() frmdouble_client.Show End Sub
Private Sub exit_Click() Unload Me End Sub
Private Sub khts_Click() frmkhts.Show End Sub
Private Sub MDIForm_Load() frmdata = False find = False End Sub
Private Sub modify_pw_Click()
21
计算机科学与工程系
frmchangepwd.Show End Sub
Private Sub only_check_Click() frmfind.Show End Sub
Private Sub only_client_Click() frmonly_client.Show End Sub
Private Sub zbgl_Click() frmzhiban.Show End Sub
2 子窗体的代码
在各个子窗体建立好后,就可以根据各个子窗体的功能给他们添加相应代码了。 (1)散客入住子窗体代码
本窗口用来录入散客入住信息,用ADO来连接数据库,是本窗体的重点。采用MDI的子程序,所以运行后,它出现在主程序界面下, 下面的代码是定义变量的。 Option Explicit
Dim rs_client As New ADODB.Recordset 新增用户按钮代码 Option Explicit
Dim rs_client As New ADODB.Recordset
Private Sub Command1_Click() On Error GoTo adderror
If Command1.Caption = \"新增记录\" Then '当此按钮的状态为为“增加记录”时 Command1.Caption = \"确定\" '按钮名称改为“确定” Command2.Enabled = False '删除与修改按钮不可用 Command3.Enabled = False
Command4.Enabled = True '取消按钮可用 DataGrid1.AllowAddNew = True
DataGrid1.AllowUpdate = True '设定datagrid可以增加记录 Else
If Not IsNull(DataGrid1.Bookmark) Then
If Trim(DataGrid1.Columns(\"房号\").CellText(DataGrid1.Bookmark)) = \"\" Then MsgBox \"房号不能为空!\ Exit Sub End If
If Trim(DataGrid1.Columns(\"房价\").CellText(DataGrid1.Bookmark)) = \"\" Then MsgBox \"房价不能为空!\
22
计算机科学与工程系
Exit Sub End If
If Trim(DataGrid1.Columns(\"姓名\").CellText(DataGrid1.Bookmark)) = \"\" Then MsgBox \"姓名不能为空!\ Exit Sub End If
If Trim(DataGrid1.Columns(\"性别\").CellText(DataGrid1.Bookmark)) = \"\" Then MsgBox \"性别不能为空!\ Exit Sub End If
If Not IsDate(Trim(DataGrid1.Columns(\"抵达日\").CellText(DataGrid1.Bookmark))) Then MsgBox \"请按照格式hh-mm输入抵达日\ Exit Sub End If
If Not IsDate(Trim(DataGrid1.Columns(\"离店日\").CellText(DataGrid1.Bookmark))) Then MsgBox \"请按照格式hh-mm输入离店日\ Exit Sub End If
rs_client.Update
MsgBox \"添加信息成功!\ DataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = False Else
MsgBox \"没有添加信息!\End If
Command1.Caption = \"新增记录\" Command2.Enabled = True Command3.Enabled = True Command4.Enabled = False End If adderror:
If Err.Number <> 0 Then MsgBox Err.Description End If End Sub
Private Sub Command2_Click() Dim answer As String
On Error GoTo cmdmodify
If Command2.Caption = \"修改记录\" Then
answer = MsgBox(\"确定要修改吗?\ If answer = vbYes Then
Command2.Caption = \"确定\"
23
计算机科学与工程系
Command1.Enabled = False Command3.Enabled = False Command4.Enabled = True DataGrid1.AllowUpdate = True Else
Exit Sub End If Else
If Not IsNull(DataGrid1.Bookmark) Then rs_client.Update End If
Command2.Caption = \"修改记录\" Command1.Enabled = True Command3.Enabled = True Command4.Enabled = False DataGrid1.AllowUpdate = False
MsgBox \"修改成功!\End If
cmdmodify:
If Err.Number <> 0 Then MsgBox Err.Description End If End Sub
Private Sub Command3_Click() Dim answer As String On Error GoTo delerror
answer = MsgBox(\"确定要删除吗?\If answer = vbYes Then
DataGrid1.AllowDelete = True rs_client.Delete rs_client.Update DataGrid1.Refresh
MsgBox \"成功删除!\ DataGrid1.AllowDelete = False Else
Exit Sub End If delerror:
If Err.Number <> 0 Then MsgBox Err.Description End If
End Sub
24
Private Sub Command4_Click()
If Command4.Caption = \"确定\" Then rs_client.Cancel DataGrid1.ReBind
DataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = False Command1.Caption = \"新增记录\" Command2.Enabled = True Command3.Enabled = True Command4.Enabled = False
ElseIf Command2.Caption = \"确定\" Then rs_client.Cancel DataGrid1.ReBind DataGrid1.Refresh
DataGrid1.AllowUpdate = False Command2.Caption = \"修改记录\" Command1.Enabled = True Command3.Enabled = True Command4.Enabled = False End If
Frame2.Enabled = True End Sub
Private Sub Command5_Click() Unload Me End Sub
Private Sub DataGrid1_Click()
End Sub
Private Sub Form_Load() Dim sql As String
On Error GoTo loaderror
sql = \"select * from 散客资料\"
rs_client.CursorLocation = adUseClient
rs_client.Open sql, conn, adOpenKeyset, adLockPessimistic '设定datagrid控件属性
DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False
Set DataGrid1.DataSource = rs_client Command4.Enabled = False
25
计算机科学与工程系
'打开数据库 '不可增加 '不可删除 计算机科学与工程系
Exit Sub loaderror:
MsgBox Err.Description
End Sub
Private Sub Form_Unload(Cancel As Integer) Set DataGrid1.DataSource = Nothing rs_client.Close End Sub
(1) 团队入住子窗体代码
本窗口是用来录队入住信息,也是用ADO来连接数据库的。 Option Explicit
Dim rs_dclient As New ADODB.Recordset
Private Sub Command1_Click() On Error GoTo adderror
If Command1.Caption = \"新增记录\" Then '当此按钮的状态为为“增加记录”时 Command1.Caption = \"确定\" '按钮名称改为“确定” Command2.Enabled = False '删除与修改按钮不可用 Command3.Enabled = False
Command4.Enabled = True '取消按钮可用 DataGrid1.AllowAddNew = True
DataGrid1.AllowUpdate = True '设定datagrid可以增加记录 Else
If Not IsNull(DataGrid1.Bookmark) Then
If Trim(DataGrid1.Columns(\"团队名称\").CellText(DataGrid1.Bookmark)) = \"\" Then MsgBox \"团队名称不能为空!\ Exit Sub End If
If Trim(DataGrid1.Columns(\"负责人姓名\").CellText(DataGrid1.Bookmark)) = \"\" Then MsgBox \"负责人姓名不能为空!\ Exit Sub End If
If Trim(DataGrid1.Columns(\"证件号码\").CellText(DataGrid1.Bookmark)) = \"\" Then MsgBox \"证件号码不能为空!\ Exit Sub End If
If Trim(DataGrid1.Columns(\"房间号码\").CellText(DataGrid1.Bookmark)) = \"\" Then MsgBox \"房间号码!\ Exit Sub End If
26
计算机科学与工程系
rs_dclient.Update
MsgBox \"添加信息成功!\ DataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = False Else
MsgBox \"没有添加信息!\End If
Command1.Caption = \"新增记录\" Command2.Enabled = True Command3.Enabled = True Command4.Enabled = False End If adderror:
If Err.Number <> 0 Then MsgBox Err.Description End If End Sub
Private Sub Command2_Click() Dim answer As String
On Error GoTo cmdmodify
If Command2.Caption = \"修改记录\" Then
answer = MsgBox(\"确定要修改吗?\ If answer = vbYes Then
Command2.Caption = \"确定\" Command1.Enabled = False Command3.Enabled = False Command4.Enabled = True DataGrid1.AllowUpdate = True Else
Exit Sub End If Else
If Not IsNull(DataGrid1.Bookmark) Then rs_dclient.Update End If
Command2.Caption = \"修改记录\" Command1.Enabled = True Command3.Enabled = True Command4.Enabled = False DataGrid1.AllowUpdate = False
MsgBox \"修改成功!\End If
cmdmodify:
27
计算机科学与工程系
If Err.Number <> 0 Then MsgBox Err.Description End If End Sub
Private Sub Command3_Click() Dim answer As String On Error GoTo delerror
answer = MsgBox(\"确定要删除吗?\If answer = vbYes Then
DataGrid1.AllowDelete = True rs_dclient.Delete rs_dclient.Update DataGrid1.Refresh
MsgBox \"成功删除!\ DataGrid1.AllowDelete = False Else
Exit Sub End If delerror:
If Err.Number <> 0 Then MsgBox Err.Description End If
End Sub
Private Sub Command4_Click()
If Command4.Caption = \"确定\" Then rs_dclient.Cancel DataGrid1.ReBind
DataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = False Command1.Caption = \"新增记录\" Command2.Enabled = True Command3.Enabled = True Command4.Enabled = False
ElseIf Command2.Caption = \"确定\" Then rs_dclient.Cancel DataGrid1.ReBind DataGrid1.Refresh
DataGrid1.AllowUpdate = False Command2.Caption = \"修改记录\" Command1.Enabled = True Command3.Enabled = True
28
计算机科学与工程系
Command4.Enabled = False End If
Frame2.Enabled = True End Sub
Private Sub Command5_Click() Unload Me
End Sub
Private Sub DataGrid1_Click()
End Sub
Private Sub Form_Load() Dim sql As String
On Error GoTo loaderror
sql = \"select * from 团队资料\"
rs_dclient.CursorLocation = adUseClient
rs_dclient.Open sql, conn, adOpenKeyset, adLockPessimistic '打开数据库 '设定datagrid控件属性
DataGrid1.AllowAddNew = False '不可增加 DataGrid1.AllowDelete = False '不可删除 DataGrid1.AllowUpdate = False
Set DataGrid1.DataSource = rs_dclient Command4.Enabled = False Exit Sub loaderror:
MsgBox Err.Description
End Sub
Private Sub Form_Unload(Cancel As Integer) Set DataGrid1.DataSource = Nothing rs_dclient.Close
End Sub
(2)增加用户子窗体代码 Private Sub Command1_Click() Dim sql As String
Dim rs_add As New ADODB.Recordset If Trim(Text1.Text) = \"\" Then
MsgBox \"用户名不能为空\
29
计算机科学与工程系
Exit Sub
Text1.SetFocus Else
sql = \"select * from 系统管理\"
rs_add.Open sql, conn, adOpenKeyset, adLockPessimistic While (rs_add.EOF = False)
If Trim(rs_add.Fields(0)) = Trim(Text1.Text) Then
MsgBox \"已有这个用户\ Text1.SetFocus Text1.Text = \"\" Text2.Text = \"\" Text3.Text = \"\" Combo1.Text = \"\" Exit Sub Else
rs_add.MoveNext End If Wend
If Trim(Text2.Text) = \"\" Then
MsgBox \"密码不能为空,请重新输入!\警告\" Text2.Text = \"\" Text2.SetFocus Exit Sub End If
If Trim(Text2.Text) <> Trim(Text3.Text) Then
MsgBox \"两次密码不一致\ Text2.SetFocus Text2.Text = \"\" Text3.Text = \"\" Exit Sub
ElseIf Trim(Combo1.Text) <> \"system\" And Trim(Combo1.Text) <> \"guest\" Then MsgBox \"请选择正确的用户权限\ Combo1.SetFocus Combo1.Text = \"\" Exit Sub Else
rs_add.AddNew
rs_add.Fields(0) = Text1.Text rs_add.Fields(1) = Text2.Text rs_add.Fields(2) = Combo1.Text rs_add.Update rs_add.Close
MsgBox \"添加用户成功\
30
Unload Me End If End If End Sub
Private Sub Command2_Click() Unload Me End Sub
Private Sub Form_Load() Combo1.AddItem \"system\" Combo1.AddItem \"guest\" End Sub
Private Sub Text2_Change()
End Sub
(3)客人信息查询子窗体代码 Option Explicit
Dim rs_data2 As New ADODB.Recordset Dim select_row As String Dim showgrid2 As Boolean
Dim rs_custom As New ADODB.Recordset
Private Sub Command1_Click() Unload Me End Sub
Private Sub Form_Load() On Error GoTo loaderror Dim sql As String
displaygrid1 loaderror:
If Err.Number <> 0 Then MsgBox Err.Description End If End Sub
'显示msflexgrid1子程序 Public Sub displaygrid1() Dim i As Integer
On Error GoTo displayerror setgrid
计算机科学与工程系
'调用显示Datagrid1子程序 31
计算机科学与工程系
setgridhead
MSFlexGrid1.Row = 0 If Not rs_data1.EOF Then rs_data1.MoveFirst
Do While Not rs_data1.EOF
MSFlexGrid1.Row = MSFlexGrid1.Row + 1 MSFlexGrid1.Col = 0
If Not IsNull(rs_data1.Fields(0)) Then MSFlexGrid1.Text = rs_data1.Fields(0) Else MSFlexGrid1.Text = \"\"
MSFlexGrid1.Col = 1
If Not IsNull(rs_data1.Fields(1)) Then MSFlexGrid1.Text = rs_data1.Fields(1) Else MSFlexGrid1.Text = \"\"
MSFlexGrid1.Col = 2
If Not IsNull(rs_data1.Fields(2)) Then MSFlexGrid1.Text = rs_data1.Fields(2) Else MSFlexGrid1.Text = \"\"
MSFlexGrid1.Col = 3
If Not IsNull(rs_data1.Fields(3)) Then MSFlexGrid1.Text = rs_data1.Fields(3) Else MSFlexGrid1.Text = \"\"
MSFlexGrid1.Col = 4
If Not IsNull(rs_data1.Fields(4)) Then MSFlexGrid1.Text = rs_data1.Fields(4) Else MSFlexGrid1.Text = \"\"
MSFlexGrid1.Col = 5
If Not IsNull(rs_data1.Fields(5)) Then MSFlexGrid1.Text = rs_data1.Fields(5) Else MSFlexGrid1.Text = \"\"
MSFlexGrid1.Col = 6
If Not IsNull(rs_data1.Fields(6)) Then MSFlexGrid1.Text = rs_data1.Fields(6) Else MSFlexGrid1.Text = \"\"
rs_data1.MoveNext Loop End If
displayerror:
If Err.Number <> 0 Then MsgBox Err.Description End If End Sub
Public Sub setgrid() Dim i As Integer
On Error GoTo seterror With MSFlexGrid1
.ScrollBars = flexScrollBarBoth .FixedCols = 0
.Rows = rs_data1.RecordCount + 1 .Cols = 7
32
.SelectionMode = flexSelectionByRow For i = 0 To .Rows - 1 .RowHeight(i) = 315 Next
For i = 0 To .Cols - 1 .ColWidth(i) = 1300 Next i End With Exit Sub seterror:
MsgBox Err.Description End Sub
Public Sub setgridhead() On Error GoTo setheaderror MSFlexGrid1.Row = 0 MSFlexGrid1.Col = 0
MSFlexGrid1.Text = \"房号\" MSFlexGrid1.Col = 1
MSFlexGrid1.Text = \"房价\" MSFlexGrid1.Col = 2
MSFlexGrid1.Text = \"姓名\" MSFlexGrid1.Col = 3
MSFlexGrid1.Text = \"性别\" MSFlexGrid1.Col = 4
MSFlexGrid1.Text = \" 证件号码\" MSFlexGrid1.Col = 5
MSFlexGrid1.Text = \"抵达日\" MSFlexGrid1.Col = 6
MSFlexGrid1.Text = \"离店日\" Exit Sub setheaderror:
MsgBox Err.Description End Sub
Private Sub Form_Unload(Cancel As Integer) findok = False rs_data1.Close 'rs_custom.Close
If showgrid2 = True Then rs_data2.Close End If End Sub
计算机科学与工程系
33
计算机科学与工程系
Private Sub MSFlexGrid1_Click()
End Sub
(4)修改密码子窗体代码 Private Sub Command1_Click()
Dim rs_chang As New ADODB.Recordset Dim sql As String
If Trim(Text1.Text) <> Trim(Text2.Text) Then
MsgBox \"密码不一致!\ Text1.SetFocus Text1.Text = \"\" Text2.Text = \"\" Else
sql = \"select * from 系统管理 where 用户名='\" & userID & \"'\" rs_chang.Open sql, conn, adOpenKeyset, adLockPessimistic rs_chang.Fields(1) = Text1.Text rs_chang.Update rs_chang.Close
MsgBox \"密码修改成功\ Unload Me End If End Sub
Private Sub Command2_Click() Unload Me End Sub
Private Sub Form_Load()
End Sub
(6)客人投诉管理子窗体代码 Private Sub Adodc1_Click()
End Sub
Private Sub Command2_Click() Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then
MsgBox \"这是最后一条记录\ Adodc1.Recordset.MoveLast End If
34
计算机科学与工程系
End Sub
Private Sub Command5_Click() On Error GoTo adderr Text1.SetFocus
' Adodc1.Recordset.AddNew
Unload Me frmkhts.Show Exit Sub adderr:
MsgBox Err.Description End Sub
Private Sub Command6_Click() On Error GoTo deleteerr With Adodc1.Recordset
If Not .EOF And Not .BOF Then
If MsgBox(\"删除当前记录吗?\ .Delete .MoveNext
If .EOF Then .MoveLast End If End If End With Exit Sub deleteerr:
MsgBox Err.Description End Sub
Private Sub Command3_Click() If Adodc1.Recordset.EOF Then
MsgBox \"纪录空\ End Else
Adodc1.Recordset.MoveFirst End If Exit Sub End Sub
Private Sub Command1_Click() Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then
MsgBox \"这是第一条记录\
35
计算机科学与工程系
Adodc1.Recordset.MoveFirst End If
End Sub
Private Sub Command4_Click()
If Adodc1.Recordset.RecordCount = 0 Then
MsgBox \"空纪录\ End Else
Adodc1.Recordset.MoveLast End If End Sub
Private Sub Command7_Click()
If Adodc1.Recordset.RecordCount = 0 Then
MsgBox \"空纪录\ End Else
Adodc1.Recordset.MoveLast End If End Sub
Private Sub Command8_Click() Unload Me End Sub
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
Private Sub Text1_Change()
End Sub
(6)值班管理子窗体代码 Option Explicit
Dim rs_zhiban As New ADODB.Recordset Private Sub cmdadd_Click() On Error GoTo adderror
If cmdadd.Caption = \"确定增加记录\" Then '当此按钮的状态为为“增加记录”时 cmdadd.Caption = \"确定\" '按钮名称改为“确定” cmddel.Enabled = False cmdcancel.Enabled = True
DataGrid1.AllowAddNew = True
36
计算机科学与工程系
DataGrid1.AllowUpdate = True '设定datagrid可以增加记录 Else
If Not IsNull(DataGrid1.Bookmark) Then
If Not IsDate(Trim(DataGrid1.Columns(\"值班开始日期\").CellText(DataGrid1.Bookmark))) Then
MsgBox \"请按照格式yyyy-mm-dd输入值班开始日期\vbOKOnly + vbExclamation, \"\" Exit Sub End If
If Not IsDate(Trim(DataGrid1.Columns(\"值班开始时间\").CellText(DataGrid1.Bookmark))) Then
MsgBox \"请按照格式hh-mm输入值班开始时间\ Exit Sub End If
If Not IsDate(Trim(DataGrid1.Columns(\"值班截止日期\").CellText(DataGrid1.Bookmark))) Then
MsgBox \"请按照格式yyyy-mm-dd输入值班截止日期\vbOKOnly + vbExclamation, \"\" Exit Sub End If
If Not IsDate(Trim(DataGrid1.Columns(\"值班截止时间\").CellText(DataGrid1.Bookmark))) Then
MsgBox \"请按照格式hh-mm输入值班截止时间\ Exit Sub End If
If Trim(DataGrid1.Columns(\"值班人\").CellText(DataGrid1.Bookmark)) = \"\" Then MsgBox \"值班人不能为空!\ Exit Sub End If
rs_zhiban.Update
'MsgBox \"添加信息成功!\ DataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = False Else
MsgBox \"没有添加信息!\End If
cmdadd.Caption = \"确定增加记录\" cmddel.Enabled = True End If adderror:
If Err.Number <> 0 Then MsgBox Err.Description End If End Sub
37
Private Sub cmdcancel_Click() Unload Me
MDIForm1.Show End Sub
Private Sub cmddel_Click() Dim answer As String On Error GoTo delerror
answer = MsgBox(\"确定要删除吗?\If answer = vbYes Then
DataGrid1.AllowDelete = True rs_zhiban.Delete rs_zhiban.Update DataGrid1.Refresh
MsgBox \"成功删除!\ DataGrid1.AllowDelete = False Else
Exit Sub End If delerror:
If Err.Number <> 0 Then MsgBox Err.Description End If End Sub
Private Sub Form_Load() Dim sql As String
On Error GoTo loaderror
sql = \"select * from 值班管理\"
rs_zhiban.CursorLocation = adUseClient
rs_zhiban.Open sql, conn, adOpenKeyset, adLockPessimistic '设定datagrid控件属性
DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False
Set DataGrid1.DataSource = rs_zhiban Exit Sub loaderror:
MsgBox Err.Description End Sub
Private Sub Form_Unload(Cancel As Integer) Set DataGrid1.DataSource = Nothing rs_zhiban.Close
38
计算机科学与工程系
'打开数据库 '不可增加 '不可删除 计算机科学与工程系
End Sub
(7)查询输出子窗体代码 Option Explicit
Dim rs_find As New ADODB.Recordset Private Sub Command1_Click() On Error GoTo cmderror Dim find_date1 As String Dim find_date2 As String If Option1.Value = True Then
sqlfind = \"select * from 散客资料 where 房号 between '\" & _ Combo1(0).Text & \"'\" & \" and \" & \"'\" & Combo1(1).Text & \"'\" End If
If Option2.Value = True Then
find_date1 = Format(CDate(Comboy(0).Text & \"-\" & _
Combom(0).Text & \"-\" & Combod(0).Text), \"yyyy-mm-dd\") find_date2 = Format(CDate(Comboy(1).Text & \"-\" & _
Combom(1).Text & \"-\" & Combod(1).Text), \"yyyy-mm-dd\")
sqlfind = \"select * from 散客资料 where 抵达日 between #\" & _ find_date1 & \"#\" & \" and\" & \" #\" & find_date2 & \"#\" End If
rs_data1.Open sqlfind, conn, adOpenKeyset, adLockPessimistic frmdatamanage.displaygrid1 Unload Me cmderror:
If Err.Number <> 0 Then
MsgBox \"请输入正确的查询条件!\警告\" End If End Sub
Private Sub Command2_Click() Unload Me
MDIForm1.Show End Sub
Private Sub Form_Load() Dim i As Integer Dim sql As String 'If findok = True Then ' rs_data1.Close 'End If
sql = \"select * from 散客资料 order by 房号 desc\" rs_find.CursorLocation = adUseClient
rs_find.Open sql, conn, adOpenKeyset, adLockPessimistic If rs_find.EOF = False Then '添加编号 With rs_find
39
计算机科学与工程系
Do While Not .EOF
Combo1(0).AddItem .Fields(0) Combo1(1).AddItem .Fields(0) .MoveNext Loop End With End If
For i = 2001 To 2005 '添加年 Comboy(0).AddItem i Comboy(1).AddItem i Next i
For i = 1 To 12 '添加月 Combom(0).AddItem i Combom(1).AddItem i Next i
For i = 1 To 31 '添加日 Combod(0).AddItem i Combod(1).AddItem i Next i End Sub
Private Sub Form_Unload(Cancel As Integer) rs_find.Close End Sub
(8)用户登录子窗体代码 Option Explicit
Dim cnt As Integer '记录确定次数
Private Sub Command1_Click() Dim sql As String
Dim rs_login As New ADODB.Recordset
If Trim(text1.Text) = \"\" Then '判断输入的用户名是否为空 MsgBox \"没有这个用户\ text1.SetFocus Else
sql = \"select * from 系统管理 where 用户名='\" & text1.Text & \"'\" rs_login.Open sql, conn, adOpenKeyset, adLockPessimistic If rs_login.EOF = True Then
MsgBox \"没有这个用户\ text1.SetFocus
Else '检验密码是否正确 If Trim(rs_login.Fields(1)) = Trim(text2.Text) Then userID = text1.Text
40
计算机科学与工程系
userpow = rs_login.Fields(2) rs_login.Close Unload Me
MDIForm1.Show Else
MsgBox \"密码不正确\ text2.SetFocus End If End If End If
cnt = cnt + 1 If cnt = 3 Then Unload Me End If Exit Sub End Sub
Private Sub Command2_Click() Unload Me End Sub
Private Sub Form_Load()
Dim connectionstring As String
connectionstring = \"provider=Microsoft.Jet.oledb.4.0;\" & _ \"data source=jiudian.mdb\" conn.Open connectionstring cnt = 0 End Sub
41
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- jqkq.cn 版权所有 赣ICP备2024042794号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务