📄 frmstuadmin.frm
字号:
cnn.Execute (SQL)
' 删除学生选课信息
SQL = "delete from jc_sc where sno='" & TxtXH.Text & "'"
On Error Resume Next
cnn.Execute (SQL)
End If
Call getAllRecords
End Sub
Private Sub cmdExit_Click()
Unload Me
End Sub
Private Sub cmdSave_Click()
'检查是否存在该学生生数据
If TxtXH.Text = "" Then
Call showMsg("学号不能为空!", 1)
Exit Sub
End If
SQL = "select sno from jc_s where sno='" & TxtXH.Text & "'"
On Error Resume Next
Set xsjl = cnn.Execute(SQL)
On Error Resume Next
If xsjl.BOF And xsjl.EOF Then
SQL = "insert into jc_c(sno,sname,sex,age,dept) "
SQL = SQL & " values ('" & TxtXH.Text & "','" & TxtXM.Text & "','" & cobXB.Text & "','" & cobNL.Text & "','" & TxtZY.Text & "')"
On Error Resume Next
cnn.Execute (SQL)
Call showMsg("添加 " & TxtXM.Text & " 的信息成功!", 1)
Else
SQL = "update jc_s set sname='" & TxtXM.Text & "',sex='" & cobXB.Text & "',age='" & cobNL.Text & "',dept='" & TxtZY.Text & "' where sno='" & TxtXH.Text & "'"
On Error Resume Next
cnn.Execute (SQL)
SQL = "select sno from jc_s where sno='" & TxtXH.Text & "'"
On Error Resume Next
Set xsjl = cnn.Execute(SQL)
Call showMsg("修改 " & TxtXM.Text & "的信息成功!", 1)
End If
Call getAllRecords
End Sub
Private Sub cmdFind_Click()
Dim strKeyword As String
strKeyword = Trim(TxtKeyword.Text)
If cobField.Text = "" Then
Call showMsg("请选择查询方式!", 1)
cobField.SetFocus
Exit Sub
ElseIf strKeyword = "" Then
Call showMsg("请输入关键字!", 1)
TxtKeyword.Enabled = True
TxtKeyword.SetFocus
Exit Sub
Else
If strFieldName <> "" Then
SQL = "select sno,sname,sex,age,dept from jc_s where " & strFieldName & " like '%" & strKeyword & "%'"
On Error Resume Next
Set xsjl = cnn.Execute(SQL)
Call Data_Display
SQL = "select count(sno) as snums from jc_s where " & strFieldName & " like '%" & strKeyword & "%'"
getRecordsNums SQL
End If
End If
End Sub
Function getRecordsNums(ByVal TmpSql As String) As String
Dim rs As ADODB.Recordset
On Error Resume Next
Set rs = cnn.Execute(TmpSql)
lbScounts.Caption = "当前共" & rs("snums") & "个学生信息"
getRecordsNums = lbScounts.Caption
End Function
Private Sub getAllRecords()
SQL = "select count(sno) as snums from jc_s"
getRecordsNums SQL
SQL = "select sno,sname,sex,age,dept from jc_s order by sno desc "
On Error Resume Next
Set xsjl = cnn.Execute(SQL)
Call Data_Display
End Sub
Private Sub getFieldOrd()
If strFieldName <> "" Then
SQL = "select sno,sname,sex,age,dept from jc_s order by " & strFieldName
If StrOrd <> "" Then
SQL = SQL & " " & StrOrd
End If
On Error Resume Next
Set xsjl = cnn.Execute(SQL)
Call Data_Display
End If
End Sub
Private Sub cobField_Change()
Call cobField_Click
End Sub
Private Sub cobField_Click()
'得到所选择的排序方式并转化为字段名
Select Case cobField.ListIndex
Case 0: strFieldName = "sno"
Case 1: strFieldName = "sname"
Case 2: strFieldName = "sex"
Case 3: strFieldName = "age"
Case 4: strFieldName = "dept"
Case Else: strFieldName = "sno"
End Select
TxtKeyword.Enabled = True
End Sub
Private Sub cobOrd_Click()
'得到所选择的排列升降序方式
Select Case cobOrd.ListIndex
Case 0: StrOrd = "asc"
Case 1: StrOrd = "desc"
Case Else: StrOrd = "asc"
End Select
Call getFieldOrd
End Sub
Private Sub cobOrdField_Click()
'得到所选择的排序方式并转化为字段名
Select Case cobOrdField.ListIndex
Case 0: strFieldName = "sno"
Case 1: strFieldName = "sname"
Case 2: strFieldName = "sex"
Case 3: strFieldName = "age"
Case 4: strFieldName = "dept"
Case Else: strFieldName = "sno"
End Select
Call getFieldOrd
End Sub
Private Sub Form_Activate()
'初始化下拉列表,Style均为 2 -Dropdown List
cobXB.AddItem ("男")
cobXB.AddItem ("女")
cobNL.AddItem ("18")
cobNL.AddItem ("19")
cobNL.AddItem ("20")
cobNL.AddItem ("21")
cobNL.AddItem ("22")
cobNL.AddItem ("23")
cobNL.AddItem ("24")
cobNL.AddItem ("25")
cobField.AddItem "学号", 0
cobField.AddItem "姓名", 1
cobField.AddItem "性别", 2
cobField.AddItem "年龄", 3
cobField.AddItem "系别", 4
cobOrdField.AddItem "学号", 0
cobOrdField.AddItem "姓名", 1
cobOrdField.AddItem "性别", 2
cobOrdField.AddItem "年龄", 3
cobOrdField.AddItem "系别", 4
cobOrd.AddItem "升序", 0
cobOrd.AddItem "降序", 1
End Sub
Private Sub Form_Load()
Dim strErr As String
If cnn.State = 0 Then
On Error GoTo errNotable:
cnn.Open connStr
End If
'调用Clear过程,清空所有文本
Call Clear
'调用getAllRecords过程,显示所有记录
Call getAllRecords
Exit Sub
errNotable:
strErr = "没有找到相应数据,请确认所选择的数据源指向的是MS SQL Server数据库" & _
vbCrLf & "并且数据库中已经存在学生信息表。" & _
vbCrLf & "您可以选择初始化重新设置数据表。" & vbCrLf
Call showMsg(strErr, 0)
End Sub
Private Sub MSFG_Clear()
With MSFlexGrid1
.Cols = 0
.Rows = 0
End With
End Sub
Private Sub Data_Display()
Dim i As Integer
'清空表
Call MSFG_Clear
With MSFlexGrid1
On Error Resume Next
If (xsjl.BOF) Or (xsjl.EOF) Then
Call showMsg("没有找到任何记录 !", 1)
.Cols = 0
.Rows = 0
Frame3.Enabled = False
Else
.Cols = 5
.Rows = 1
Frame3.Enabled = True
'得到每一个列的列名
' For i = 0 To 4
' .TextMatrix(0, i) = xsjl.Fields(i).Name
' Next i
.TextMatrix(0, 0) = "学号"
.TextMatrix(0, 1) = "姓名"
.TextMatrix(0, 2) = "性别"
.TextMatrix(0, 3) = "年龄"
.TextMatrix(0, 4) = "所在系"
.ColWidth(0) = 1500
.ColWidth(1) = 1500
.ColWidth(2) = 1500
.ColWidth(3) = 800
.ColWidth(4) = 2500
On Error GoTo rsErr
Do While Not xsjl.EOF
.Rows = .Rows + 1
'显示一条记录
For i = 0 To 4
.TextMatrix(MSFlexGrid1.Rows - 1, i) = Trim(xsjl.Fields(i))
Next i
'移动游标到下一条记录
xsjl.MoveNext
Loop
End If
End With
Exit Sub
rsErr:
Call showMsg(" ", 0)
End Sub
Private Sub Form_Resize()
'使所有框架居中
With Me
Frame4.Left = (.ScaleWidth - Frame4.Width) / 2
Frame4.Top = (.ScaleHeight - Frame4.Height) / 2
End With
End Sub
Private Sub Form_Unload(Cancel As Integer)
mdiFrm.stb.SimpleText = "就绪"
Unload Me
End Sub
Private Sub MSFlexGrid1_Click()
gRow = MSFlexGrid1.Row
With MSFlexGrid1
'得到一条记录
On Error GoTo exitThis
' TxtXH.Text = .TextMatrix(MSFlexGrid1.Rows - 1, 0)
'如果为零,则说明所选择的是第一行标题
Call Clear
If gRow <> 0 Then
TxtXH.Text = .TextMatrix(gRow, 0)
TxtXM.Text = .TextMatrix(gRow, 1)
cobXB.Text = .TextMatrix(gRow, 2)
cobNL.Text = .TextMatrix(gRow, 3)
TxtZY.Text = .TextMatrix(gRow, 4)
End If
End With
exitThis:
End Sub
Private Sub MSFlexGrid1_RowColChange()
Call MSFlexGrid1_Click
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -