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

📄 frmingrade.frm

📁 大学数据库原理的课程设计
💻 FRM
📖 第 1 页 / 共 2 页
字号:
   Begin MSAdodcLib.Adodc adoNoName 
      Height          =   330
      Left            =   1680
      Top             =   4440
      Visible         =   0   'False
      Width           =   1335
      _ExtentX        =   2355
      _ExtentY        =   582
      ConnectMode     =   0
      CursorLocation  =   3
      IsolationLevel  =   -1
      ConnectionTimeout=   15
      CommandTimeout  =   30
      CursorType      =   3
      LockType        =   3
      CommandType     =   8
      CursorOptions   =   0
      CacheSize       =   50
      MaxRecords      =   0
      BOFAction       =   0
      EOFAction       =   0
      ConnectStringType=   1
      Appearance      =   1
      BackColor       =   -2147483643
      ForeColor       =   -2147483640
      Orientation     =   0
      Enabled         =   -1
      Connect         =   "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Stud97.mdb;Persist Security Info=False"
      OLEDBString     =   "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Stud97.mdb;Persist Security Info=False"
      OLEDBFile       =   ""
      DataSourceName  =   ""
      OtherAttributes =   ""
      UserName        =   ""
      Password        =   ""
      RecordSource    =   ""
      Caption         =   "Adodc1"
      BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
         Name            =   "宋体"
         Size            =   9
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      _Version        =   393216
   End
   Begin MSAdodcLib.Adodc adoInGrade 
      Height          =   330
      Left            =   120
      Top             =   4440
      Visible         =   0   'False
      Width           =   1335
      _ExtentX        =   2355
      _ExtentY        =   582
      ConnectMode     =   0
      CursorLocation  =   3
      IsolationLevel  =   -1
      ConnectionTimeout=   15
      CommandTimeout  =   30
      CursorType      =   3
      LockType        =   4
      CommandType     =   8
      CursorOptions   =   0
      CacheSize       =   50
      MaxRecords      =   0
      BOFAction       =   0
      EOFAction       =   0
      ConnectStringType=   1
      Appearance      =   1
      BackColor       =   -2147483643
      ForeColor       =   -2147483640
      Orientation     =   0
      Enabled         =   -1
      Connect         =   "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Stud97.mdb;Persist Security Info=False"
      OLEDBString     =   "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Stud97.mdb;Persist Security Info=False"
      OLEDBFile       =   ""
      DataSourceName  =   ""
      OtherAttributes =   ""
      UserName        =   ""
      Password        =   ""
      RecordSource    =   ""
      Caption         =   "Adodc1"
      BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
         Name            =   "宋体"
         Size            =   9
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      _Version        =   393216
   End
   Begin MSAdodcLib.Adodc adoOldGrade 
      Height          =   330
      Left            =   5280
      Top             =   4440
      Visible         =   0   'False
      Width           =   1455
      _ExtentX        =   2566
      _ExtentY        =   582
      ConnectMode     =   0
      CursorLocation  =   3
      IsolationLevel  =   -1
      ConnectionTimeout=   15
      CommandTimeout  =   30
      CursorType      =   3
      LockType        =   3
      CommandType     =   8
      CursorOptions   =   0
      CacheSize       =   50
      MaxRecords      =   0
      BOFAction       =   0
      EOFAction       =   0
      ConnectStringType=   1
      Appearance      =   1
      BackColor       =   -2147483643
      ForeColor       =   -2147483640
      Orientation     =   0
      Enabled         =   -1
      Connect         =   "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Stud97.mdb;Persist Security Info=False"
      OLEDBString     =   "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Stud97.mdb;Persist Security Info=False"
      OLEDBFile       =   ""
      DataSourceName  =   ""
      OtherAttributes =   ""
      UserName        =   ""
      Password        =   ""
      RecordSource    =   ""
      Caption         =   "Adodc1"
      BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
         Name            =   "宋体"
         Size            =   9
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      _Version        =   393216
   End
End
Attribute VB_Name = "frmInGrade"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'输入成绩窗体frmInGrade
Option Explicit

Private Sub cboClass_Click() '班级组合框
    If Trim$(cboCource.Text) = "" Then Exit Sub
    Call GetOldGrade    '获取已有成绩
    Call MakeTempTable  '生成临时表
    cmdOk.Enabled = True
End Sub

Private Sub cboCource_Click() '课程组合框
    If Trim$(cboClass.Text) = "" Then Exit Sub
    Call GetOldGrade   '获取已有成绩
    Call MakeTempTable '生成临时表
    cmdOk.Enabled = True
End Sub

Private Sub cmdCancel_Click() '取消
    If adoInGrade.Recordset Is Nothing Then Exit Sub
    adoInGrade.Recordset.CancelBatch
End Sub

Private Sub cmdExit_Click() '退出
    Unload Me
End Sub

Private Sub cmdOk_Click() '确认输入
    Dim Rp As Integer
    Rp = MsgBox("“确认输入”后将无法取消,是否继续?", vbQuestion + vbYesNo, "提示")
    If Rp = vbNo Then Exit Sub
    
    cmdOk.Enabled = False
    
    '将临时表中的数据追加到成绩表中
    With adoInGrade.Recordset
        If .RecordCount = 0 Then Exit Sub
        .MoveFirst
        Do Until .EOF
            '注意对数据库中NULL值的判断,VB表达式与SQL表达式不同
            If Not IsNull(.Fields("分数")) Then
                adoAdd.Recordset.AddNew
                adoAdd.Recordset("学号") = .Fields("学号").Value
                adoAdd.Recordset("课程") = cboCource.Text
                adoAdd.Recordset("分数") = .Fields("分数").Value
                adoAdd.Recordset.Update
            End If
            .MoveNext
        Loop
    End With
    
    '延时,以便完成数据库后台更新
    Dim sngWait As Single
    sngWait = Timer
    Do Until Timer - sngWait > 1#
        fraWait.Visible = True
        DoEvents
    Loop
    fraWait.Visible = False
    
    MsgBox "添加成绩成功。", vbInformation
    Call cboCource_Click '刷新控件
    
End Sub

Private Sub Form_Load() '窗体加载
    adoAdd.RecordSource = "SELECT * FROM 课程信息"
    adoAdd.Refresh
    With adoAdd.Recordset
        Do Until .EOF
            cboCource.AddItem .Fields("课程").Value
            .MoveNext
        Loop
    End With
    
    Call AddClassItem(cboClass) '填充班级组合框
    cmdOk.Enabled = False
    
    '打开成绩表
    adoAdd.RecordSource = "SELECT * FROM 成绩"
    adoAdd.Refresh
    '设输入成绩(临时表)记录集为批更新模式
    adoInGrade.LockType = adLockBatchOptimistic
End Sub

Private Sub Form_Unload(Cancel As Integer) '窗体卸载时
    frmMain.Show
End Sub

Private Sub GetOldGrade() '自定义过程:获取已有成绩并显示
    Dim sql As String
    '生成当前班级、课程已有成绩记录集
    sql = "SELECT 成绩.学号 AS 学号,学籍.姓名,分数 " _
          & " FROM 成绩,学籍 WHERE 成绩.学号=学籍.学号" _
          & " AND 成绩.课程='" & cboCource.Text & "'" _
          & " AND 学籍.班级='" & cboClass.Text & "'"
    adoOldGrade.RecordSource = sql
    adoOldGrade.Refresh
    '设置DataGrid控件
    With dgdGrade
        Set .DataSource = adoOldGrade
        .Columns(0).Width = 1200
        .Columns(1).Width = 1200
        .AllowUpdate = False
    End With
End Sub

Private Sub MakeTempTable() '自定义过程:生成临时表并显示
    Dim sql As String
    
    adoInGrade.RecordSource = "SELECT * FROM 临时"
    adoInGrade.Refresh
    
    '删除临时表中的记录
    With adoInGrade.Recordset
        '用记录集的Delete方法(客户端游标只能删除当前记录)
        Do While .RecordCount > 0
            .MoveFirst
            .Delete
        Loop
        .UpdateBatch
    End With
    
    '根据所选班级构成学号姓名记录集
    sql = "SELECT 学号, 姓名 FROM 学籍 " _
          & " WHERE 班级='" & cboClass.Text & "'"
    adoNoName.RecordSource = sql
    adoNoName.Refresh
    
    '将当前课程尚无成绩的学号姓名加入临时表,为输入成绩作准备
    With adoNoName.Recordset
        Do Until .EOF
            If adoOldGrade.Recordset.RecordCount > 0 Then '关键语句
                adoOldGrade.Recordset.MoveFirst
            End If
            adoOldGrade.Recordset.Find "学号='" & .Fields("学号").Value & "'"
            If adoOldGrade.Recordset.EOF Then
                adoInGrade.Recordset.AddNew
                adoInGrade.Recordset("学号") = .Fields("学号").Value
                adoInGrade.Recordset("姓名") = .Fields("姓名").Value
            End If
            .MoveNext
        Loop
        adoInGrade.Recordset.UpdateBatch
    End With
    
    '设置DataGrid控件
    With dgdInGrade
        Set .DataSource = adoInGrade
        .AllowUpdate = True
     '   .Columns(0).Locked = True '锁定学号、姓名
        .Columns(1).Locked = True
        .Columns(0).Width = 1100
        .Columns(1).Width = 1100
        If adoInGrade.Recordset.RecordCount > 0 Then
            .Col = 2
            .Row = 0
            .SetFocus
        End If
    End With
End Sub

⌨️ 快捷键说明

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