热门文章 | 热门软件| 热门源码 | 热门电影 | 知识库 | 联系我们
软件 源码 教程 影视 健康 招聘
  HTML | JavaScript | ASP | PHP | JSP | NET | VB | VC | VF | Windows | Linux | Mysql | Mssql | Oracle | Struts 
当前位置: 创世纪计算机资源网 -> 文章频道 ->vb 
站内搜索:
VB+Access设计图书管理系统(7)
作者:不详 来源:csdn 整理日期:2007-2-19


主窗体代码

  在本项目中,子菜单事件都是Click事件,这里先给出主窗体部分的代码。

  下面是响应“增加用户”子菜单Click事件,调出增加用户窗体代码。

  Private Sub adduser_Click()

  frmadduser.Show

  End Sub

  下面是响应“查询输出”子菜单Click事件,调出查询输出窗体代码。

  Private Sub chaxunshuchu_Click()

  frmfind.Show

  End Sub

  下面是响应“退出”子菜单Click事件,调出退出窗体代码。

  Private Sub exit_Click()

  Unload Me

  End Sub

  下面是响应“图书登记”子菜单Click事件,调出图书登记窗体代码。

  Private Sub checkin_Click()

  frmdengji.Show

  End Sub

  下面是响应“修改密码”子菜单Click事件,调出修改密码窗体代码。

  Private Sub changepwd_Click()

  frmchangepwd.Show

  End Sub

  下面是响应“图书借阅”子菜单Click事件,调出图书借阅窗体代码。

  Private Sub borrow_Click()

  frmjieyue.Show

  End Sub

  下面是响应“图书赔偿”子菜单Click事件,调出图书赔偿窗体代码。

  Private Sub tushupeichang_Click()

  frmpeichang.Show 1

  End Sub

  下面是响应“值班管理”菜单Click事件,调出值班管理窗体代码。

  Private Sub zhibanguanli_Click()

  frmzhiban.Show 1

  End Sub

  下面是响应“投诉管理”子菜单Click事件,调出投诉管理窗体代码。

  Private Sub tousuguanli_Click()

  frmtousu.Show 1

  End Sub

  2、各子窗体的代码

  在各个子窗体建立好后,就可以根据各个子窗体的功能给它们添加相应代码了。

  (1) 图书登记子窗体代码

  本窗体用来填写图书登记的信息,用ADO来连接数据库,是本窗体的重点。采用MDI的子程序,所以运行后,它出现在主程序的界面下,如图33所示。

  VB+Access设计图书管理系统(图三十三)
  图33 图书登记子窗体

  按钮控件要求先填写基本信息,然后与数据库信息比较。

  Private Sub Command1_Click()

  On Error GoTo adderr

  Text1.SetFocus

  Adodc1.Recordset.AddNew

  Exit Sub

  adderr:

  MsgBox Err.Description

  End Sub

  Private Sub Command2_Click()

  On Error GoTo deleteerr

  With Adodc1.Recordset

  If Not .EOF And Not .BOF Then

  If MsgBox("删除当前记录吗?", vbYesNo + vbQuestion) = vbYes Then

  .Delete

  .MoveNext

  If .EOF Then .MoveLast

  End If

  End If

  End With

  Exit Sub

  deleteerr:

  MsgBox Err.Description

  End Sub

  Private Sub Command3_Click()

  Adodc1.Recordset.MoveNext

  If Adodc1.Recordset.EOF Then

  MsgBox "这是最后一条记录", vbOKCancel + vbQuestion

  Adodc1.Recordset.MoveLast

  End If

  End Sub

  Private Sub Command4_Click()

  Adodc1.Recordset.MovePrevious

  If Adodc1.Recordset.BOF Then

  MsgBox "这是第一条记录", vbOKCancel + vbQuestion

  Adodc1.Recordset.MoveFirst

  End If

  End Sub

  Private Sub Command5_Click()

  If Adodc1.Recordset.EOF Then

  MsgBox "记录空", vbOKCancel + vbQuestion

  End

  Else

  Adodc1.Recordset.MoveFirst

  Exit Sub

  End Sub

  Private Sub Command6_Click()

  If Adodc1.Recordset.RecordCount = 0 Then

  MsgBox "空记录", vbOKCancel + vbQuestion

  End

  Else

  Adodc1.Recordset.MoveLast

  End If

  End Sub

  Private Sub Command7_Click()

  MDIForm1.Show

  frmdengji.Hide

  End Sub

  图书借阅和图书赔偿子窗体运行后如图34和图35所示,因为它们的代码和图书登记子窗体的代码雷同,在此不做重复。

  VB+Access设计图书管理系统(图三十四)
  图34 图书借阅子窗体运行效果

  VB+Access设计图书管理系统(图三十五)
  图35 图书赔偿子窗体运行效果

  (2) 增加用户子窗体代码

  增加用户子窗体是用来增加用户的用户名、密码和权限的。其运行效果如图36所示。

  单击“确定”按钮后,还要返回一个信息框,提示成功信息,如图37所示。

  VB+Access设计图书管理系统(图三十六) VB+Access设计图书管理系统(图三十七)
  图36 增加用户子窗体运行效果 图37 成功信息框

  窗体部分代码的思路是,收集输入的表中的字符串,然后与数据库中的系统的用户数据比较,如果不存在,则允许添加。

  Private Sub Command1_Click()

  Dim sql As String

  Dim rs_add As New ADODB.Recordset

  If Trim(Text1.Text) = "" Then

  MsgBox "用户名不能为空", vbOKOnly + vbExclamation, ""

  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 "已有这个用户", vbOKOnly + vbExclamation, ""

  Text1.SetFocus

  Text1.Text = ""

  Text2.Text = ""

  Text3.Text = ""

  Combo1.Text = ""

  Exit Sub

  Else

  rs_add.MoveNext

  End If

  Wend

  If Trim(Text2.Text) <> Trim(Text3.Text) Then

  MsgBox "两次密码不一致", vbOKOnly + vbExclamation, ""

  Text2.SetFocus

  Text2.Text = ""

  Text3.Text = ""

  Exit Sub

  ElseIf Trim(Combo1.Text) <> "system" And Trim(Combo1.Text) <> "guest" Then

  MsgBox "请选择正确的用户权限", vbOKOnly + vbExclamation, ""

  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 "添加用户成功", vbOKOnly + vbExclamation, ""

  Unload Me

  End If

  End If

  End Sub

  (3) 修改密码子窗体代码

  修改密码子窗体是用来修改用户密码的。其运行效果如图38所示。

  VB+Access设计图书管理系统(图三十八)

  图38 修改密码子窗体运行效果

  在“确定”按钮的Click事件中添加如下代码:

  Private Sub Command1_Click()

  Dim rs_chang As New ADODB.Recordset

  Dim sql As String

  If Trim(Text1.Text) <> Trim(Text2.Text) Then

  MsgBox "密码不一致!", vbOKOnly + vbExclamation, ""

  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 "密码修改成功", vbOKOnly + vbExclamation, ""

  Unload Me

  End If

  End Sub

VB+Access设计图书管理系统(图三十九)

  在上述代码中,首先比较两个表中的数据是否一致,然后用rs_chang.Fields(1) = Text1.Text语句把代码输入到数据库中。最后,用MsgBox "密码修改成功", vbOKOnly + vbExclamation,""语句弹出一个信息框,告诉修改成功,如图39所示。

  显示目录

  (4) 库房管理子窗体代码

  库房管理子窗体是用来管理图书资料的。其运行效果如图40所示。

  VB+Access设计图书管理系统(图四十)

  图40 库房管理子窗体

  实际上,设计库房管理子窗体的程序代码与增加用户子窗体的代码在思路上是完全相同的。就是在DataGrid的文本框中显示图书进出的清单,最后把填写的明细存储到数据库中。

  检查代码如下:

  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

  Dim jinchu As String 进出库标志

  Dim modify As Boolean 修改状态标志

  Private Sub cmdexit_Click()

  Unload Me

  End Sub

  Private Sub Form_Load()

  On Error GoTo loaderror

  Dim sql As String

  sql = "select * from 图书资料"

  rs_custom.CursorLocation = adUseClient

  rs_custom.Open sql, conn, adOpenKeyset, adLockPessimistic

  While Not rs_custom.EOF

  Combo1.AddItem rs_custom.Fields(0)

  rs_custom.MoveNext

  Wend

  findok = True

  modify = False 非修改状态

  showgrid2 = False

  displaygrid1 调用显示Datagrid1子程序

  loaderror:

  If Err.Number <> 0 Then

  MsgBox Err.Description

  End If

  End Sub

[1]  [2]  [3]  [4]  [5]  [6]  [7]  [8]  [9]  [10]  [11]  
相关文章
暂无