界面设计
设计好的界面如图20所示。

图20 图书管理系统界面
这是一个多文档界面(MDI)应用程序,可以同时显示多个文档,每个文档显示在各自的窗体中。MDI 应用程序中常有包含子菜单的“窗体”选项,用于在窗体或文档之间进行切换。
菜单应用程序中,有5个菜单选项,每个选项对应着E-R图的一个子项目。
1、创建主窗体
首先创建一个工程,命名为图书管理系统,选择“工程”→“添加MDI窗体”命令,则在项目中添加了主窗体。该窗体的一些属性如表1所示。
表1 主窗体的属性
属 性值Caption图书管理系统NameMainMenuMainmenu1WindowstateMaxsize
Windowstate的值为Maxsize,即程序启动之后自动最大化。
将“菜单”组件从“工具箱”拖到窗体上。创建一个 Text 属性设置为“文件”的顶级菜单项,且带有名为“关闭”的子菜单项。类似地创建一些菜单项,如表2所示。
表2 菜 单 项 表
菜 单 名 称Text属性功 能 描 述MenuItem1图书管理顶级菜单,包含子菜单MenuItem2图书登记调出图书登记窗体MenuItem3图书借阅调出图书借阅窗体MenuItem4图书赔偿调出图书赔偿窗体MenuItem5图书资料顶级菜单,包含子菜单MenuItem6查询输出调出查询输出窗体MenuItem7值班管理顶级菜单,没有子菜单MenuItem8投诉管理顶级菜单,没有子菜单MenuItem9系统管理顶级菜单,包含子菜单MenuItem10增加用户调出用户窗体MenuItem11修改密码调出密码窗体MenuItem12退出系统退出
主窗体如图21所示。

图21 主窗体
2、创建各子窗体
选择“工程”→“添加窗体”命令,添加子窗体。
在新建Visual Basic工程时自带的窗体中,将其属性MIDChild改成True,则这个窗体成为MID窗体的子窗体。
在这个项目中,要创建的子窗体如表3所示。
表3 所有子窗体
子 窗 体 名Text图书登记frmdengji图书借阅frmjieyue图书赔偿frmpeichang增加新用户frmadduser查询输出frmfind登录系统frmlogin修改密码frmchangepwd
下面分别给出这些子窗体,以及它们所使用的控件。
(1) 图书登记子窗体如图22所示,其控件如表4所示。

图22 图书登记子窗体
表4 图书登记子窗体控件
控 件 类 别控件Name控件TextLabelLabel1编号Label2书名Label3类型Label4购买日期Label5定价TextBoxText1(空)Text2(空)Text3(空)Text4(空)Text5(空)CommandButtonCommand1增加记录Command2删除记录Command3下一条Command4上一条Command5第一条Command6最后一条Command7退出ADO DataAdodc1(空)DataGridDataGrid1(空)
图书借阅和图书赔偿子窗体分别如图23和图24所示,因为它们的控件与图书登记子窗体的雷同,在此不作介绍。

图23 图书借阅子窗体

图24 图书赔偿子窗体
(2) 增加用户子窗体如图25所示,其控件如表5所示。

图25 增加用户子窗体
表5 增加用户子窗体控件
控 件 类 别控件Name控件TextLabelLabel1输入用户名Label2输入密码Label3确认密码Label4选择权限TextBoxText1(空)Text2(空)Text3(空)ComboBoxComb1(空)CommandButtonCommandl确定Command2取消
(3) 修改密码子窗体如图26所示。

图26 修改密码子窗体
(4) 库房管理子窗体如图27所示。

图27 库房管理子窗体
其控件如表6所示。
表6 库房管理子窗体控件
控 件 类 别控件Name控件TextTextBoxText1(空)ComboBoxCombo1 MSFlexGridMSFlexGrid1
(5) 查询子窗体如图28所示,其控件如表7所示。

图28 查询子窗体
表7 查询子窗体控件
控 件 类 别控件Name控件TextOptionButtonOption1按编号查询 Option2按购买日期查询LabelLabel1从Label2到Label3从Label4年Label5月Label6日Label7到Label8年Label9月Label10日Combo(0) ComboBoxCombo1(空)Combo(1) ComboBoxCombo1(空)Comboy(0) ComboBoxComboy(空)Comboy(1) ComboBoxComboy(空)Combom(0) ComboBoxCombom(空)Combom(1) ComboBoxCombom(空)Combod(0) ComboBoxCombod(空)Combod(1) ComboBoxCombod(空)CommandButtonCommand1 查询Command2取消
(6) 用户登录子窗体如图29所示。
(7) 值班管理子窗体如图30所示,其控件如表8所示。

图29 用户登录子窗体 图30 值班管理子窗体
(8) 投诉管理子窗体如图31所示,其控件如表9所示。

图31 投诉管理子窗体
建立公共模块
1、显示目录
建立公共模块可以提高代码的效率,同时使得修改和维护代码都很方便。
创建公共模块的步骤如下:
(1) 在菜单中选择“工程”→“添加模块”命令,则出现模块对话框,如图32所示。
(2) 选择模块图标后,单击“打开”按钮,则模块已经添加到项目中了。默认情况下名为Module1。

图32 模块对话框
(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
Public Const keyenter = 13 ' enter键的ASCII码
在主窗体添加完菜单之后,就要为各个子菜单创建事件处理程序。