📄 frmgradeupdate.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 + -