⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmgradeupdate.frm

📁 适用一般于毕业设计! VB代码源加SQL 数据库 ··
💻 FRM
字号:
VERSION 5.00
Object = "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCT2.OCX"
Begin VB.Form FrmGradeUpdate 
   BorderStyle     =   3  'Fixed Dialog
   Caption         =   "编辑考级信息"
   ClientHeight    =   4230
   ClientLeft      =   45
   ClientTop       =   435
   ClientWidth     =   8430
   Icon            =   "FrmGradeUpdate.frx":0000
   LinkTopic       =   "Form1"
   LockControls    =   -1  'True
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   4230
   ScaleWidth      =   8430
   ShowInTaskbar   =   0   'False
   StartUpPosition =   2  '屏幕中心
   Begin VB.Frame Frame1 
      Height          =   3915
      Left            =   180
      TabIndex        =   3
      Top             =   120
      Width           =   6555
      Begin VB.TextBox txtName 
         Height          =   375
         Left            =   1500
         TabIndex        =   10
         Text            =   "Name"
         Top             =   1260
         Width           =   4815
      End
      Begin VB.TextBox txtStuName 
         Enabled         =   0   'False
         Height          =   375
         Left            =   1500
         TabIndex        =   0
         Text            =   "StuName"
         Top             =   300
         Width           =   2775
      End
      Begin VB.TextBox txtMemo 
         Height          =   1875
         Left            =   1500
         MultiLine       =   -1  'True
         ScrollBars      =   2  'Vertical
         TabIndex        =   4
         Text            =   "FrmGradeUpdate.frx":06EA
         Top             =   1740
         Width           =   4815
      End
      Begin MSComCtl2.DTPicker DtDate 
         Height          =   375
         Left            =   1500
         TabIndex        =   9
         Top             =   780
         Width           =   1755
         _ExtentX        =   3096
         _ExtentY        =   661
         _Version        =   393216
         CheckBox        =   -1  'True
         Format          =   25559041
         CurrentDate     =   2
         MaxDate         =   109939
         MinDate         =   2
      End
      Begin VB.Label Label1 
         AutoSize        =   -1  'True
         Caption         =   "学生姓名"
         Height          =   180
         Left            =   300
         TabIndex        =   8
         Top             =   420
         Width           =   720
      End
      Begin VB.Label Label3 
         AutoSize        =   -1  'True
         Caption         =   "考工考级名称"
         Height          =   180
         Left            =   300
         TabIndex        =   7
         Top             =   1380
         Width           =   1080
      End
      Begin VB.Label Label2 
         AutoSize        =   -1  'True
         Caption         =   "通过日期"
         Height          =   180
         Left            =   300
         TabIndex        =   6
         Top             =   900
         Width           =   720
      End
      Begin VB.Label Label4 
         AutoSize        =   -1  'True
         Caption         =   "备注"
         Height          =   180
         Left            =   300
         TabIndex        =   5
         Top             =   1860
         Width           =   360
      End
   End
   Begin VB.CommandButton cmdOk 
      Caption         =   "确定"
      Height          =   400
      Left            =   6960
      TabIndex        =   1
      Top             =   600
      Width           =   1245
   End
   Begin VB.CommandButton cmdCancel 
      Cancel          =   -1  'True
      Caption         =   "取消"
      Height          =   400
      Left            =   6960
      TabIndex        =   2
      Top             =   1260
      Width           =   1245
   End
End
Attribute VB_Name = "FrmGradeUpdate"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Private Sub Update_Data(Rs As ADODB.Recordset, _
                       StuID As String, ByVal mFlag As Integer)
  '参数Rs:考级信息记录集
  '参数StuID:学生内码
  '参数mFlag:插入/修改标志,0-新增;1-修改
  If mFlag = 0 Then
    Rs.AddNew
    Rs!ID = GetRndCode                                '生成新内码
    Rs!StuID = StuID                                  '学生内码
  End If
  If IsDate(DtDate.Value) Then                          '通过日期
    Rs!GDate = Format(DtDate.Value, "yyyy-mm-dd")
  Else
    Rs!GDate = Null
  End If
  Rs!GName = txtName.Text                             '考工考级名称
  Rs!GMemo = txtMemo.Text                           '备注
  Rs.Update
End Sub

Private Sub Form_Load()
  If ModifyFlag = 0 Then      '添加记录,需要清空各控件中的内容
    txtStuName.Text = FrmGrade.ListView1.SelectedItem.SubItems(1)
    DtDate.Value = Date
    txtName.Text = ""
    txtMemo.Text = ""
  Else                        '修改记录,在控件中填充内容
    With FrmGrade
      txtStuName.Text = .rsGrade!StuName
      DtDate.Value = IIf(IsDate(.rsGrade!GDate), .rsGrade!GDate, Null)
      txtName.Text = IIf(IsNull(.rsGrade!GName), "", .rsGrade!GName)
      txtMemo.Text = IIf(IsNull(.rsGrade!GMemo), "", .rsGrade!GMemo)
    End With
  End If
  
  txtStuName.Enabled = False
End Sub

Private Sub Form_Unload(Cancel As Integer)
  Set FrmGradeUpdate = Nothing
End Sub

Private Sub cmdOk_Click()
  On Error GoTo ErrorHandle
  Dim sStuID As String
  Dim strSql As String
  Dim Rs As New ADODB.Recordset
  Dim blnState As Boolean   '标志变量:True-事务未全部完成,False-全部完成

  '获取学生内码
  sStuID = Right(FrmGrade.ListView1.SelectedItem.Key, _
                  Len(FrmGrade.ListView1.SelectedItem.Key) - 1)
                 
  Conn.BeginTrans   '开始事务
  blnState = True     '设置标志状态
  
  If ModifyFlag = 0 Then      '添加记录
    '打开考级信息记录集(空记录集)
    strSql = "SELECT top 0 * FROM Grade"
    Rs.Open strSql, Conn, adOpenStatic, adLockOptimistic
    '调用Update_Data过程,向Grade表中添加考级信息
    Call Update_Data(Rs, sStuID, ModifyFlag)
    
    '同时把当前记录添加到rsGrade记录集中,以便在DataGrid控件上显示出来
    'rsGrade是批更新模式,记录集的添加不会影响到所涉及的数据表中的数据
    With FrmGrade
      .rsGrade.AddNew
      .rsGrade!ID = Rs!ID
      .rsGrade!StuID = Rs!StuID
      .rsGrade!GDate = Rs!GDate
      .rsGrade!GName = Rs!GName
      .rsGrade!GMemo = Rs!GMemo
      .rsGrade!StuName = txtStuName.Text
      .rsGrade.Update
    End With
  Else              '修改记录
    '查询获取要修改考级信息的记录集(仅一条记录)
    strSql = "SELECT * FROM Grade WHERE ID='" & FrmGrade.rsGrade!ID & "'"
    Rs.Open strSql, Conn, adOpenStatic, adLockOptimistic
    If Not Rs.EOF Then
      '调用Update_Data过程,修改考级信息
      Call Update_Data(Rs, sStuID, ModifyFlag)
    End If
    
    '同时要修改rsGrade记录集中的当前记录,以便在DataGrid控件上显示出来
    'rsGrade是批更新模式,记录集的修改不会影响到所涉及的数据表中的数据
    With FrmGrade
      .rsGrade!GDate = Rs!GDate
      .rsGrade!GName = Rs!GName
      .rsGrade!GMemo = Rs!GMemo
      .rsGrade!StuName = txtStuName.Text
      .rsGrade.Update
    End With
  End If
  Rs.Close
  Set Rs = Nothing
  
  Conn.CommitTrans    '提交事务
  blnState = False      '取消标志状态

  Unload Me
  
  On Error GoTo 0
  Exit Sub
  
ErrorHandle:
  If blnState = True Then Conn.RollbackTrans    '在事务中发生错误,回滚事务
  MsgBox Error(Err.Number), vbExclamation + vbOKOnly, "操作提示"
End Sub

Private Sub cmdCancel_Click()
  Unload Me
End Sub


⌨️ 快捷键说明

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