formclass.frm

来自「vb数据库编程资料」· FRM 代码 · 共 425 行

FRM
425
字号
VERSION 5.00
Object = "{00028C01-0000-0000-0000-000000000046}#1.0#0"; "DBGRID32.OCX"
Object = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCT2.OCX"
Begin VB.Form frmClass 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "班级管理"
   ClientHeight    =   7185
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   8145
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   7185
   ScaleWidth      =   8145
   StartUpPosition =   2  '屏幕中心
   Begin VB.TextBox txtMasterTel 
      DataField       =   "MasterTel"
      DataSource      =   "dataClass"
      Height          =   270
      Left            =   2400
      MaxLength       =   13
      TabIndex        =   5
      Top             =   1920
      Width           =   2895
   End
   Begin MSComCtl2.DTPicker dtpBeginDate 
      DataField       =   "BeginDate"
      DataSource      =   "dataClass"
      Height          =   255
      Left            =   2400
      TabIndex        =   3
      Top             =   1200
      Width           =   2895
      _ExtentX        =   5106
      _ExtentY        =   450
      _Version        =   393216
      Format          =   23724033
      CurrentDate     =   38011
   End
   Begin VB.ComboBox cmbDepart 
      DataField       =   "DepartID"
      DataSource      =   "dataClass"
      Height          =   300
      ItemData        =   "FormClass.frx":0000
      Left            =   2400
      List            =   "FormClass.frx":0002
      TabIndex        =   0
      Top             =   120
      Width           =   2895
   End
   Begin VB.TextBox txtClassID 
      DataField       =   "ClassID"
      DataSource      =   "dataClass"
      Height          =   270
      Left            =   2400
      MaxLength       =   6
      TabIndex        =   1
      Top             =   480
      Width           =   2895
   End
   Begin VB.TextBox txtClassName 
      DataField       =   "ClassName"
      DataSource      =   "dataClass"
      Height          =   270
      Left            =   2400
      MaxLength       =   20
      TabIndex        =   2
      Top             =   840
      Width           =   2895
   End
   Begin VB.TextBox txtMaster 
      DataField       =   "Master"
      DataSource      =   "dataClass"
      Height          =   270
      Left            =   2400
      MaxLength       =   8
      TabIndex        =   4
      Top             =   1560
      Width           =   2895
   End
   Begin VB.Data dataValid 
      Caption         =   "验证"
      Connect         =   "Access"
      DatabaseName    =   "E:\Book Edit\VisualBasic数据库编程教程\ch12\Student.mdb"
      DefaultCursorType=   0  '缺省游标
      DefaultType     =   2  '使用 ODBC
      Exclusive       =   0   'False
      Height          =   405
      Left            =   5520
      Options         =   0
      ReadOnly        =   0   'False
      RecordsetType   =   1  'Dynaset
      RecordSource    =   "Student"
      Top             =   2040
      Visible         =   0   'False
      Width           =   2535
   End
   Begin VB.CommandButton cmdDelete 
      Caption         =   "删除(&D)"
      Height          =   375
      Left            =   5520
      TabIndex        =   8
      Top             =   600
      Width           =   1215
   End
   Begin VB.Data dataClass 
      Caption         =   "班级管理"
      Connect         =   "Access"
      DatabaseName    =   "E:\Book Edit\VisualBasic数据库编程教程\ch12\Student.mdb"
      DefaultCursorType=   0  '缺省游标
      DefaultType     =   2  '使用 ODBC
      Exclusive       =   0   'False
      Height          =   435
      Left            =   5520
      Options         =   0
      ReadOnly        =   0   'False
      RecordsetType   =   0  'Table
      RecordSource    =   "Class"
      Top             =   1560
      Width           =   2535
   End
   Begin VB.TextBox txtDesc 
      DataField       =   "Description"
      DataSource      =   "dataClass"
      Height          =   1695
      Left            =   120
      MultiLine       =   -1  'True
      TabIndex        =   6
      Top             =   2400
      Width           =   7935
   End
   Begin VB.CommandButton cmdAdd 
      Caption         =   "添加(&A)"
      Height          =   375
      Left            =   5520
      TabIndex        =   7
      Top             =   120
      Width           =   1215
   End
   Begin VB.CommandButton cmdQuit 
      Caption         =   "退出(&Q)"
      Height          =   375
      Left            =   5520
      TabIndex        =   9
      Top             =   1080
      Width           =   1215
   End
   Begin VB.CommandButton cmdSave 
      Caption         =   "保存(&S)"
      Height          =   375
      Left            =   6840
      TabIndex        =   11
      Top             =   600
      Width           =   1215
   End
   Begin VB.CommandButton cmdModify 
      Caption         =   "修改(&M)"
      Height          =   375
      Left            =   6840
      TabIndex        =   10
      Top             =   120
      Width           =   1215
   End
   Begin VB.CommandButton cmdCancel 
      Cancel          =   -1  'True
      Caption         =   "放弃(&C)"
      Height          =   375
      Left            =   6840
      TabIndex        =   12
      Top             =   1080
      Width           =   1215
   End
   Begin MSDBGrid.DBGrid dbgClass 
      Bindings        =   "FormClass.frx":0004
      Height          =   2895
      Left            =   120
      OleObjectBlob   =   "FormClass.frx":001C
      TabIndex        =   13
      Top             =   4200
      Width           =   7935
   End
   Begin VB.Label Label7 
      Alignment       =   1  'Right Justify
      Caption         =   "班主任电话"
      Height          =   255
      Left            =   1320
      TabIndex        =   20
      Top             =   1920
      Width           =   975
   End
   Begin VB.Label Label6 
      Alignment       =   1  'Right Justify
      Caption         =   "入学时间"
      Height          =   255
      Left            =   1320
      TabIndex        =   19
      Top             =   1200
      Width           =   975
   End
   Begin VB.Label Label1 
      Alignment       =   1  'Right Justify
      Caption         =   "班级编号"
      Height          =   255
      Left            =   1320
      TabIndex        =   18
      Top             =   480
      Width           =   975
   End
   Begin VB.Label Label2 
      Alignment       =   1  'Right Justify
      Caption         =   "班级名称"
      Height          =   255
      Left            =   1320
      TabIndex        =   17
      Top             =   840
      Width           =   975
   End
   Begin VB.Label Label3 
      Alignment       =   1  'Right Justify
      Caption         =   "班主任姓名"
      Height          =   255
      Left            =   1320
      TabIndex        =   16
      Top             =   1560
      Width           =   975
   End
   Begin VB.Label Label4 
      Alignment       =   1  'Right Justify
      Caption         =   "所属院系"
      Height          =   255
      Left            =   1320
      TabIndex        =   15
      Top             =   195
      Width           =   975
   End
   Begin VB.Label Label5 
      Caption         =   "说明"
      Height          =   255
      Left            =   120
      TabIndex        =   14
      Top             =   2040
      Width           =   615
   End
End
Attribute VB_Name = "frmClass"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim BookMK
Dim InEditMode As Boolean

Private Sub cmdAdd_Click()
  If dataClass.Recordset.RecordCount > 0 Then
    BookMK = dataClass.Recordset.Bookmark
  Else
    BookMK = Null
  End If
  
  dataClass.Recordset.AddNew
  InEditMode = True
  ToggleEditMode
  
  dtpBeginDate.Value = Date
End Sub

Private Sub cmdCancel_Click()
  dataClass.UpdateControls
  InEditMode = False
  ToggleEditMode
  
  If Len(BookMK) > 0 Then
    dataClass.Recordset.Bookmark = BookMK
  ElseIf dataClass.Recordset.RecordCount > 0 Then
    dataClass.Recordset.MoveFirst
  End If
End Sub

Private Sub cmdDelete_Click()
  Dim Msg$
  
  If dataClass.Recordset.EOF Then Exit Sub
    
  dataValid.RecordSource = "SELECT * FROM Student WHERE ClassID='" & dataClass.Recordset("ClassID") & "'"
  dataValid.Refresh
  If Not dataValid.Recordset.EOF Then
    Msg = "学生["
    While Not dataValid.Recordset.EOF
      Msg = Msg & dataValid.Recordset("Name") & ","
      dataValid.Recordset.MoveNext
    Wend
    Msg = Msg & "] 属于该班级,所以不能删除该班级!"
    
    MsgBox Msg
    Exit Sub
  End If
  
  Msg = MsgBox("确定要删除记录吗?", vbYesNo)
  If Msg = vbYes Then
    dataClass.Recordset.Delete
    dataClass.Recordset.MoveNext
    If dataClass.Recordset.EOF And (dataClass.Recordset.RecordCount > 0) Then
      dataClass.Recordset.MoveLast
    End If
  End If
End Sub

Private Sub cmdModify_Click()
  If dataClass.Recordset.EOF Then Exit Sub
  
  BookMK = dataClass.Recordset.Bookmark
  dataClass.Recordset.Edit
  InEditMode = True
  ToggleEditMode
  txtClassID.Locked = True
End Sub

Private Sub cmdQuit_Click()
  Unload Me
End Sub

Private Sub cmdSave_Click()
  txtClassID.Text = Replace(Trim(txtClassID.Text), "'", "")
  txtClassName.Text = Replace(Trim(txtClassName.Text), "'", "")
  txtMaster.Text = Replace(Trim(txtMaster.Text), "'", "")
  txtMasterTel.Text = Replace(Trim(txtMasterTel.Text), "'", "")
  txtDesc.Text = Replace(Trim(txtDesc.Text), "'", "")

  If cmbDepart.ListIndex < 0 Then
    MsgBox "所属院系编号输入不正确", , "输入错误"
    cmbDepart.SetFocus
    Exit Sub
  ElseIf dtpBeginDate.Value = "" Then
    MsgBox "请选择一个入学日期!", , "输入错误"
    dtpBeginDate.SetFocus
    Exit Sub
  ElseIf txtClassID.Text = "" Then
    MsgBox "班级编号不能为空!", , "输入错误"
    txtClassID.SetFocus
    Exit Sub
  ElseIf txtClassName.Text = "" Then
    MsgBox "班级名称不能为空!", , "输入错误"
    txtClassName.SetFocus
    Exit Sub
  End If
  
  If Not txtClassID.Locked Then
    dataValid.RecordSource = "SELECT * FROM Class WHERE ClassID='" & strClassID & "'"
    dataValid.Refresh
    If Not dataValid.Recordset.EOF Then
      Msg = "班级编号[" & strDepartID & "]已经存在,不能重复。"
      MsgBox Msg
      txtClassID.SetFocus
      Exit Sub
    End If
  End If
  
  dataClass.UpdateRecord
  InEditMode = False
  ToggleEditMode
  
  If Len(BookMK) > 0 Then
    dataClass.Recordset.Bookmark = BookMK
  ElseIf dataClass.Recordset.RecordCount > 0 Then
    dataClass.Recordset.MoveFirst
  End If
End Sub

Private Sub Form_Load()
  dataClass.DatabaseName = App.Path & "\Student.mdb"
  dataValid.DatabaseName = App.Path & "\Student.mdb"
  dataValid.Visible = False
  
  FullDepart
  
  InEditMode = False
  ToggleEditMode
  
  If cmbDepart.ListCount < 1 Then
    MsgBox "目前院系库为空,请先进行院系设置,然后再进行班级管理!"
    cmdAdd.Enabled = False
  End If
End Sub

Private Sub ToggleEditMode()
  txtClassID.Locked = Not InEditMode
  txtClassName.Locked = Not InEditMode
  txtMaster.Locked = Not InEditMode
  txtMasterTel.Locked = Not InEditMode
  txtDesc.Locked = Not InEditMode
  
  cmbDepart.Enabled = InEditMode
  dtpBeginDate.Enabled = InEditMode
  
  cmdAdd.Enabled = Not InEditMode
  cmdDelete.Enabled = Not InEditMode
  cmdQuit.Enabled = Not InEditMode
  cmdModify.Enabled = Not InEditMode
  dbgClass.Enabled = Not InEditMode
  
  dataClass.Enabled = Not InEditMode
  
  cmdSave.Enabled = InEditMode
  cmdCancel.Enabled = InEditMode
End Sub

Private Sub FullDepart()
  dataValid.RecordSource = "SELECT * FROM Department"
  dataValid.Refresh
  cmbDepart.Clear
  While Not dataValid.Recordset.EOF
    cmbDepart.AddItem dataValid.Recordset("DepartID")
    dataValid.Recordset.MoveNext
  Wend
End Sub

Private Sub Form_Unload(Cancel As Integer)
  If InEditMode Then
    dataClass.UpdateControls
    InEditMode = False
    ToggleEditMode
  End If
End Sub

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?