首页 百科知识 创建公共模块

创建公共模块

时间:2022-10-21 百科知识 版权反馈
【摘要】:为了系统的开发和修改方便,在VB 6.0中我们会定义模块来存放全局公用的函数、过程、常数、自定义结构、全局变量等公共信息,比如数据库的连接和打开;这些公共信息每个窗体都需要,所以我们把这些都放在公共模块中以便各个窗体调用。好的编程习惯是把不同种类的功用模块分类放在不同的标准模块中,便于查阅。我们在“LMS.vbp”项目中建立两个名称不同的模块分别存放不同的公共信息。

5.2 创建公共模块

为了系统的开发和修改方便,在VB 6.0中我们会定义模块来存放全局公用的函数、过程、常数、自定义结构、全局变量等公共信息,比如数据库的连接和打开;这些公共信息每个窗体都需要,所以我们把这些都放在公共模块中以便各个窗体调用。好的编程习惯是把不同种类的功用模块分类放在不同的标准模块中,便于查阅。我们在“LMS.vbp”项目中建立两个名称不同的模块分别存放不同的公共信息。建立方法如下:

在“工程资源管理器”窗口单击鼠标右键,选择“添加”→“添加模块(M)”,在弹出的“添加模块”对话框中默认打开(见图5-6),系统默认添加的模块的名称为“Module1.bas”,可以通过模块的属性修改名称,我们添加两个模块,分别命名为“modDatabase”(用来放数据库等相关信息)和“modOther”(存放其他的信息)。

img29

图5-6 添加模块

下面我们来分别介绍两个模块中的代码及其功能。

代码5-1 modDatabase.bas模块

′****************************************************************************

Option Explicit ′强制类型检查声明

′因为VB的变量可以不声明直接用,这样增加了程序的不确定性,所以修改为强制类型检查,可以减少拼写带来的错误

′相关声明

Public fineAmt As String ′定义变量,用来存取借书超出规定天数的每天罚款金额

Public maxDays As String ′定义变量,用来存取最多允许借阅的天数

Public cn As Connection ′定义数据库连接对象cn

Public rsUser As Recordset ′以下均为公共类型记录集定义

Public rsPubId As New Recordset

Public rsCatId As New Recordset

Public rsClassId As New Recordset

Public rsLibraryId As New Recordset

Public rsBookId As New Recordset

Public rsBookInfo As New Recordset

Public rsPubInfo As New Recordset

Public rsCatInfo As New Recordset

Public rsClassInfo As New Recordset

Public rsUserInfo As New Recordset

Public rsMemberInfo As New Recordset Public rsIssueInfo As New Recordset

′******************************************

Public Sub main() ′Sum main方法是在所有窗体事件之前被执行的特殊方法

 On Error Resume Next

 ′执行Resume Next命令使程序在发生错误那条命令后继续执行

 ′这对于程序和用户不能合理地修正错误时很有意义。

 fineAmt=GetSetting(App.Title,″Settings″,″FineAmt″)

 ′从Windows注册表中获取设置的罚款参数

 If fineAmt=″″Then

    fineAmt=Str(1) ′如果罚款参数没设置,则设置每天罚款默认值

    SaveSetting App.Title,″Settings″,″FineAmt″,CStr(1)

   ′把设置的参数写入注册表

End If

′设置系统约定最多允许借阅天数

maxDays=GetSetting(App.Title,″Settings″,″MaxDays″)

If maxDays=″″Then

  maxDays=Str(14) ′默认最多允许借阅14天

  SaveSetting App.Title,″Settings″,″MaxDays″,CStr(14)

End If

′注:VB写入注册表的一般位置为Windows系统下的HKEY_CURRENT_USER/Software/VB

′**************************************

If App.PrevInstance=True Then

  MsgBox″图书管理系统已经打开″,vbInformation,″图书管理信息系统

  Exit Sub

End If

′如果已经打开了系统程序 再次打开就会报告该系统提示信息

′防止多次打开同一个程序

′数据库连接代码

Set cn=New Connection

cn.ConnectionString=″Provider=SQLOLEDB.1;Persist Security Info=False;

User ID=sa;Initial Catalog=Library;Data Source=(local)″

′Data Source=(local)指的是连接的本地服务器

′只要SQLServer与VB项目在同一台机器上,程序不需要任何调整即可使用。

′连接SQL用的是默认用户名sa,无密码

cn.CursorLocation=adUseClient

′指定使用客户端游标提高通过网络访问数据库的性能

cn.Open ′打开数据库

If cn.State=adStateOpen Then

  ′如果数据库连接成功

  ′记录集从对应的数据库表中获取数据,使用不同的记录集记录相关信息

  Set rsUser=New Recordset

  rsUser.CursorLocation=adUseClient

  rsUser.Open″Select user_id from users″,cn,adOpenKeyset,adLockPessimistic

  rsBookInfo.Open″select Book_Id′图书编号′,Book_name′图书名称′,Author′作者′,Publication_id′出版社代号′,catId′分类号′from bookinfo″,cn,adOpenKeyset,adLockPessimistic

  rsPubId.Open″select publication_id′出版社代码′from publication″,cn,adOpenKeyset,adLockPessimistic

  rsCatId.Open″select catid′分类号′from cat″,cn,adOpenKeyset,ad-LockPessimistic

  rsClassId.Open″select Class_id′班级代码′from class″,cn,adOpenKeyset,adLockPessimistic

  rsLibraryId.Open″select Library_id′借书证号′from student″,cn,adOpen-Keyset,adLockPessimistic

  rsBookId.Open″select book_id′图书编号′from bookInfo where book_id not in(select book_id from Issue)″,cn,adOpenKeyset,adLockPessimistic

  ′已借出的图书号不显示

  rsPubInfo.Open″select Publication_Id′出版社代码′,Publication_Name′出版社名称′from publication″,cn,adOpenKeyset,adLockPessimistic

  rsCatInfo.Open″select catId′分类代码′,catName′分类名称′from cat″,cn,adOpenKeyset,adLockPessimistic

  rsClassInfo.Open″select Class_Id′班级代码′,Class_Name′班级名称′from class″,cn,adOpenKeyset,adLockPessimistic

  rsUserInfo.Open″select user_id as′用户名′,passwd as′密码′from users″,cn,adOpenKeyset,adLockPessimistic

  rsMemberInfo.Open″select Library_Id′借书证号′,Class_Id′班级代码′,Roll_No′学号′,Name′姓名′,Sex′性别′,Address′住址′from student″,cn,adOpen-Keyset,adLockPessimistic

  rsIssueInfo.Open″select Book_Id′图书编码′,Issue_Date′借出日期′,Library_Id′借书证号′from Issue″,cn,adOpenKeyset,adLockPessimistic

  frmLogin.Show ′显示登录窗体使之成为默认第一个启动

Else

  ′如果数据库连接失败

  MsgBox″数据库连接失败″,vbCritical,″图书管理信息系统″

  End

 End If

End Sub

代码5-2 modOther.bas模块

′****************************************************************************

Option Explicit ′强制类型检查

Public sUserName As String ′定义存取登录系统用户名的变量

′定义一个公共函数,当系统主窗体退出时候该函数被执行

′点确认按钮返回值为1其余为0

Public Function ApplicationUnload()As Integer

  Dim check

  check=MsgBox(″确认退出么?″,vbExclamation+vbOKCancel,″图书馆系统″)

  If check=vbOK Then

    ApplicationUnload=1

    End

  Else

    ApplicationUnload=0

  End If

End Function

′定义系统重新登录的子过程

Public Sub loggedOff()

  Call main

  DoEvents ′转让控制权,以便让操作系统处理其他更紧急的事件

  frmMain.Hide ′对应窗体隐藏

  DoEvents

  frmLogin.Show ′对应窗体出现

 DoEvents

End Sub

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈