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

📄 form1.frm

📁 学籍管理系统 欢迎大家借鉴修改. 请不要随便删除,谢谢
💻 FRM
📖 第 1 页 / 共 4 页
字号:
Next
Grid2.Visible = False
Call c1_Click(0)
Exit Sub
finish:
MsgBox Err.Description
End Sub

Private Sub Grid2_CellChange(ByVal Row As Long, ByVal Col As Long) '使用智能输入
If Grid2.Cell(Row, 1).Text <> "" And Row <> 0 Then
  Dim length1, length2 As Integer
  length1 = Len(Grid2.Cell(Row, 1).Text)
  Do While length2 < length1
    length2 = length2 + 1
    If Right(Left(Grid2.Cell(Row, 1).Text, length2), 1) = "-" Then
      Grid2.Cell(Row, 2).Text = Mid(Grid2.Cell(Row, 1).Text, length2 + 1, length1)
      Grid2.Cell(Row, 1).Text = Mid(Grid2.Cell(Row, 1).Text, 1, length2 - 1)
      Exit Do
    End If
  Loop
End If
If Grid2.Cell(Row, 3).Text <> "" And Row <> 0 Then
    Dim length3, length4 As Integer
  length3 = Len(Grid2.Cell(Row, 3).Text)
  Do While length4 < length3
    length4 = length4 + 1
    If Right(Left(Grid2.Cell(Row, 3).Text, length4), 1) = "-" Then
      Grid2.Cell(Row, 4).Text = Mid(Grid2.Cell(Row, 3).Text, length4 + 1, length4)
      Grid2.Cell(Row, 3).Text = Mid(Grid2.Cell(Row, 3).Text, 1, length4 - 1)
      Exit Do
    End If
  Loop
End If
End Sub
Private Sub Grid2_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = 2 Then
 If admin = False Then
  cgedit.Enabled = False
  cgdel.Enabled = False
  addcg.Enabled = False
 End If
 PopupMenu cg
End If
End Sub

Private Sub Grid2_RowColChange(ByVal Row As Long, ByVal Col As Long)
hang = Row
End Sub

Private Sub datagrid()
griddelete = True '允许删除
gridedit = True
If tkbase = "学生信息" Then
If qy1.State = adStateOpen Then '表状态
qy1.Close
End If
qy1.Open sql, cnn, adOpenStatic, adLockReadOnly, adCmdText
For i = 1 To fnumber
Grid1.Cell(0, i).Text = qy1.Fields(i - 1).Name
Next
qy1.PageSize = 20
nnum = qy1.PageCount
If qy1.PageCount = 0 Then
nnum = 1
End If
numpage = 1
Label1.Caption = "共" & nnum & "页 第" & numpage & "页"
Grid1.Rows = 1
Grid1.Rows = 21
If qy1.RecordCount = 0 Then
Exit Sub
End If
qy1.AbsolutePage = numpage
 For i = 1 To qy1.PageSize '设定读取行
 For j = 1 To fnumber '设定读取列
  If qy1.EOF = True Then
  Exit Sub
  End If
 If Not qy1.Fields(j - 1) Is Nothing Then '空值的处理
  Grid1.Cell(i, j).Text = qy1.Fields(j - 1)
 Else
 Grid1.Cell(i, j).Text = ""
 End If
 Next
 If qy1.EOF = False Then
 qy1.MoveNext '读取下一记录
 Else
 Exit Sub
 End If
 Next
ElseIf tkbase = "学生与课程" Then
If qy1.State = adStateOpen Then '表状态
qy1.Close
End If
qy1.Open sql, cnn, adOpenStatic, adLockReadOnly, adCmdText
For i = 1 To fnumber
Grid2.Cell(0, i).Text = qy1.Fields(i - 1).Name
Next
qy1.PageSize = 20
nnum = qy1.PageCount
If qy1.PageCount = 0 Then
nnum = 1
End If
numpage = 1
Label1.Caption = "共" & nnum & "页 第" & numpage & "页"
Grid2.Rows = 1
Grid2.Rows = 21
If qy1.RecordCount = 0 Then
Exit Sub
End If
qy1.AbsolutePage = numpage
 For i = 1 To qy1.PageSize '设定读取行
 For j = 1 To fnumber '设定读取列
  If qy1.EOF = True Then
  Exit Sub
  End If
 If Not qy1.Fields(j - 1) Is Nothing Then '空值的处理
  Grid2.Cell(i, j).Text = qy1.Fields(j - 1)
 Else
 Grid2.Cell(i, j).Text = ""
 End If
 Next
 If qy1.EOF = False Then
 qy1.MoveNext '读取下一记录
 Else
 Exit Sub
 End If
 Next
End If
End Sub

Private Sub Grid2_Validate(Cancel As Boolean)
    Dim nActiveRow As Long, nActiveCol As Long
    Const VK_TAB = 9

    If GetKeyState(VK_TAB) < 0 Then
        nActiveRow = Grid1.ActiveCell.Row
        nActiveCol = Grid1.ActiveCell.Col
        If nActiveCol < Grid1.Cols - 1 Then
            Grid1.Range(nActiveRow, nActiveCol + 1, _
                        nActiveRow, nActiveCol + 1).Selected
        End If
        Cancel = True
    End If
End Sub

Private Sub Label7_Click()
If tkbase = "学生信息" Then
If numpage > 1 Then
numpage = numpage - 1
qy1.AbsolutePage = numpage
Grid1.Rows = 1
Grid1.Rows = 21
For i = 1 To 20 '设定读取行
 For j = 1 To fnumber '设定读取列
 If qy1.Fields(j - 1) = Null Then '空值的处理
 Grid1.Cell(i, j).Text = ""
 Else
 Grid1.Cell(i, j).Text = qy1.Fields(j - 1)
 End If
 Next
 qy1.MoveNext  '读取上一记录
 Next
End If
Label1.Caption = "共" & nnum & "页 第" & numpage & "页"
ElseIf tkbase = "学生与课程" Then
If numpage > 1 Then
numpage = numpage - 1
qy1.AbsolutePage = numpage
Grid2.Rows = 1
Grid2.Rows = 21
For i = 1 To 20 '设定读取行
 For j = 1 To fnumber '设定读取列
 If qy1.Fields(j - 1) = Null Then '空值的处理
 Grid2.Cell(i, j).Text = ""
 Else
 Grid2.Cell(i, j).Text = qy1.Fields(j - 1)
 End If
 Next
 qy1.MoveNext  '读取上一记录
 Next
End If
Label1.Caption = "共" & nnum & "页 第" & numpage & "页"
End If
End Sub

Private Sub Label8_Click()
If tkbase = "学生信息" Then
If numpage < nnum Then
numpage = numpage + 1
qy1.AbsolutePage = numpage
Grid1.Rows = 1
Grid1.Rows = 21
For i = 1 To 20 '设定读取行
 For j = 1 To fnumber '设定读取列
 If qy1.EOF = True Then
  Label1.Caption = "共" & nnum & "页 第" & numpage & "页"
 Exit Sub
 End If
 If qy1.Fields(j - 1) = Null Then '空值的处理
 Grid1.Cell(i, j).Text = ""
 Else
 Grid1.Cell(i, j).Text = qy1.Fields(j - 1)
 End If
 Next
 If qy1.EOF = False Then
 qy1.MoveNext  '读取下一记录
 Else
 Label1.Caption = "共" & nnum & "页 第" & numpage & "页"
 Exit Sub
 End If
 Next
End If
Label1.Caption = "共" & nnum & "页 第" & numpage & "页"
ElseIf tkbase = "学生与课程" Then
If numpage < nnum Then
numpage = numpage + 1
qy1.AbsolutePage = numpage
Grid2.Rows = 1
Grid2.Rows = 21
For i = 1 To 20 '设定读取行
 For j = 1 To fnumber '设定读取列
 If qy1.EOF = True Then
  Label1.Caption = "共" & nnum & "页 第" & numpage & "页"
 Exit Sub
 End If
 If qy1.Fields(j - 1) = Null Then '空值的处理
 Grid2.Cell(i, j).Text = ""
 Else
 Grid2.Cell(i, j).Text = qy1.Fields(j - 1)
 End If
 Next
 If qy1.EOF = False Then
 qy1.MoveNext  '读取下一记录
 Else
 Label1.Caption = "共" & nnum & "页 第" & numpage & "页"
 Exit Sub
 End If
 Next
End If
Label1.Caption = "共" & nnum & "页 第" & numpage & "页"
End If
End Sub

Private Sub pcg_Click()
If hang <> 0 Then
 If Grid2.Cell(hang, 2).Text <> "" Then
 sql = "select sum(成绩)/count(成绩) from 学生与课程 where 学号='" & Grid2.Cell(hang, 3).Text & "'"
 Set qy2 = cnn.Execute(sql)
 MsgBox "学号为" & Grid2.Cell(hang, 3).Text & "的成绩平均为" & qy2.Fields(0) & "分"
End If
End If
End Sub

Private Sub renovate_Click()
Call asPopup1_Click(False)
End Sub

Private Sub returncg_Click()
Grid1.Visible = True
Grid2.Visible = False
End Sub

Private Sub savestudent_Click()
Call XPButton5_Click
End Sub

Private Sub sclass_Click()
If hang <> 0 Then
Set qy2 = cnn.Execute("select 班级 from 学生信息 where 学号='" & Grid2.Cell(hang, 3).Text & "'")
If qy2.EOF = False Then
MsgBox "学生" & Grid2.Cell(hang, 4).Text & "所属班级是" & qy2.Fields(0)
End If
End If
End Sub
Private Sub XPButton13_Click()
Call XPButton3_Click
Select Case tkbase
 Case "学生信息"
Grid1.Visible = True
Grid2.Visible = False
fnumber = 13
grid1pz '执行grid1的分配空间任务
datagrid '按要求读取数据空间
Case "学生与课程"
Grid1.Visible = False
Grid2.Visible = True
fnumber = 6
gridpz2
datagrid
gridsave = False
gridedit = True
griddel = True
Grid2.Column(1).Locked = True
Grid2.Column(2).Locked = True
Grid2.Column(3).Locked = True
End Select
Frame2.Visible = False
End Sub

Private Sub XPButton14_Click()
Frame2.Visible = False
End Sub
Private Sub XPButton3_Click()
 tkbase = Combo1.Text
If Combo1.Text = "" Then
 MsgBox "未选择对象!", vbInformation, "提示"
 Exit Sub
ElseIf Text1.Text = "" Then
 sql = "select * from " & Combo1.Text
ElseIf Text1.Text <> "" Then
 sql = "select * from " & Combo1.Text & " where " & Text1.Text
End If
Label5.Caption = sql
End Sub

Private Sub XPButton4_Click()
 On Error GoTo tkFinish
If gridedit = False Then
MsgBox "当前修改操作不被允许!", vbInformation, "非使用对象"
Exit Sub
End If
Dim delok As String
Select Case tkbase
 Case "学生信息"
 delok = MsgBox("确认修改刚才修改的所有数据吗??", vbQuestion + vbOKCancel, "提示")
If delok = vbOK Then
hang = 1
 Do While hang < Grid1.Rows - 1
 If Grid1.Cell(hang, 1).Text = "" Then
 MsgBox "己完成修改操作!", , "提示"
 Exit Sub
 End If
  sql = "update " & tkbase & " set "
            For j = 2 To fnumber - 1
            sql = sql & qy1.Fields(j - 1).Name & "='" & Grid1.Cell(hang, j).Text & "',"
            Next
  sql = sql & qy1.Fields(j - 1).Name & "='" & Grid1.Cell(hang, j).Text & "' where " & qy1.Fields(0).Name & "='" & Grid1.Cell(hang, 1).Text & "'"
  Set qy2 = cnn.Execute(sql) '用qy2更新数据集,这样可实现批量更新
  hang = hang + 1
 Loop
 MsgBox "己完成修改操作!", , "提示"
 End If
Case "学生与课程"
  delok = MsgBox("确认提交当前成绩的修改吗??", vbQuestion + vbOKCancel, "提示")
If delok = vbOK Then
hang = 1
 Do While hang < Grid2.Rows - 1
 If Grid2.Cell(hang, 1).Text = "" Then
 MsgBox "己完成修改操作!", , "提示"
 Exit Sub
 End If
sql = "update " & tkbase & " set "
            For j = 2 To fnumber - 1
            sql = sql & qy1.Fields(j - 1).Name & "='" & Grid2.Cell(hang, j).Text & "',"
            Next
  sql = sql & qy1.Fields(j - 1).Name & "='" & Grid2.Cell(hang, j).Text & "' where " & qy1.Fields(0).Name & "='" & Grid2.Cell(hang, 1).Text & "' and  " & qy1.Fields(1).Name & "='" & Grid2.Cell(hang, 2).Text & "'"
  Set qy2 = cnn.Execute(sql)
  hang = hang + 1
 Loop
 MsgBox "己完成修改操作!", , "提示"
 End If
End Select
    Exit Sub
tkFinish:
    MsgBox Err.Description
End Sub

Private Sub XPButton5_Click()
 On Error GoTo tkFinish
If tkbase = "" Then
MsgBox "表指向不明,请确认", vbInformation, "提示"
Exit Sub
End If
If gridsave = False Then
MsgBox "当前不允许保存!", vbInformation, "提示"
Exit Sub
End If
Select Case tkbase
 Case "学生信息"
For i = 1 To 20 '处理重名数据
 If Grid1.Cell(i, 1).Text <> "" Then
 Set qy1 = cnn.Execute("select 学号 from 学生信息 where 学号='" & Grid1.Cell(i, 1).Text & "'")
 If qy1.EOF = False Then
   MsgBox "第" & i & "行的学号在数据库里出现重复,请检查", vbInformation, "错误"
   Grid1.Cell(i, 1).SetFocus
   Exit Sub
 End If
 End If
Next
For i = 1 To 20
  For n = 1 To fnumber
    Select Case n
       Case 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 '检查数据是否为空
         If Grid1.Cell(i, 1).Text <> "" Then
          If Grid1.Cell(i, n).Text = "" Then
            MsgBox "第" & i & "行的--[" & Grid1.Cell(0, n).Text & "]--字段不允许为空!", vbInformation, "提示"
            Grid1.Cell(i, n).SetFocus
            Exit Sub
          End If
          End If
    End Select
    Next
  If Grid1.Cell(i, 1).Text <> "" Then '执行插入语句
  sql = "insert into " & tkbase & " values('"
            For j = 1 To fnumber - 1
            sql = sql & Grid1.Cell(i, j).Text & "','"
           Next
  sql = sql & Grid1.Cell(i, fnumber).Text & "')"
  Set qy1 = cnn.Execute(sql)
  End If
Next
MsgBox "命令执行完毕!", vbInformation, "完成"
Grid1.Rows = 1
Grid1.Rows = 21
Case "学生与课程"
  MsgBox "未授权版本,学生与课程的保存代码未执行,联系:QQ342483870!"
End Select
gridsave = False
griddelete = False '拒绝删除
gridedit = False
    Exit Sub
tkFinish:
    MsgBox Err.Description
End Sub
Private Sub XPButton6_Click()
 On Error GoTo tkFinish
MsgBox "未授权版本,不支持目标删除操作!", , "提示"
Exit Sub
tkFinish:
    MsgBox Err.Description
End Sub

Private Sub XPButton8_Click(Index As Integer)
Call findcg_Click
End Sub

⌨️ 快捷键说明

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