📄 frmcourseadmin.frm
字号:
End If
Call getAllRecords
End Sub
Private Sub cmdExit_Click()
Unload Me
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 cno,cname,tname,ccredit from jc_c where " & strFieldName & " like '%" & strKeyword & "%'"
On Error Resume Next
Set rs = cnn.Execute(SQL)
Call Data_Display
SQL = "select count(sno) as cnums 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("cnums") & "个课程信息"
getRecordsNums = lbScounts.Caption
End Function
Private Sub getAllRecords()
SQL = "select count(cno) as cnums from jc_c"
getRecordsNums SQL
SQL = "select cno,cname,tname,ccredit from jc_c order by cno desc "
On Error Resume Next
Set rs = cnn.Execute(SQL)
Call Data_Display
End Sub
Private Sub getFieldOrd()
If strFieldName <> "" Then
SQL = "select cno,cname,tname,ccredit from jc_c order by " & strFieldName
If StrOrd <> "" Then
SQL = SQL & " " & StrOrd
End If
On Error Resume Next
Set rs = cnn.Execute(SQL)
Call Data_Display
End If
End Sub
Private Sub cmdFind_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
cmdFind.BackColor = &H80000005
End Sub
Private Sub cmdFind_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
cmdFind.BackColor = &HFFC0C0
End Sub
Private Sub cmdSave_Click()
'On Error Resume Next
Dim Msg As String
Dim Sid As Integer
'检查是否存在该学生生数据
If TxtCno.Text = "" Then
Call showMsg("课程编号不能为空!", 1)
TxtCno.SetFocus
Exit Sub
End If
On Error GoTo sqlErr
SQL = "select cno from jc_c where cno='" & TxtCno.Text & "'"
Set rs = cnn.Execute(SQL)
If rs.BOF And rs.EOF Then
On Error GoTo sqlErr
SQL = "insert into jc_c (cno,cname,tname,ccredit) "
SQL = SQL & "values ('" & TxtCno.Text & "','" & TxtCname.Text & "','" & TxtTname.Text & "','" & TxtCcredit.Text & "')"
cnn.Execute (SQL)
Call showMsg("保存 " & TxtCname.Text & " 的信息成功!", 1)
Exit Sub
Else
On Error GoTo sqlErr
SQL = "update jc_c set cname='" & TxtCname.Text & "',tname='" & TxtTname.Text & "',ccredit='" & TxtCcredit.Text & "' where cno='" & TxtCno.Text & "'"
cnn.Execute (SQL)
SQL = "select cno from jc_c where cno='" & TxtCno.Text & "'"
Set rs = cnn.Execute(SQL)
Call showMsg("修改 " & TxtCname.Text & " 的信息成功!", 1)
Exit Sub
End If
sqlErr:
Call showMsg("操作失败,可能原因:" & vbCrLf & "-你选择信息已经存在。" & vbCrLf & "-您输入的信息为非法字符。", 0)
Call getAllRecords
End Sub
Private Sub Form_Activate()
'初始化下拉列表,Style均为 2 -Dropdown List
cobField.AddItem "课程编号", 0
cobField.AddItem "课程名称", 1
cobField.AddItem "授课教师", 2
cobField.AddItem "学分", 3
cobOrdField.AddItem "课程编号", 0
cobOrdField.AddItem "课程名称", 1
cobOrdField.AddItem "授课教师", 2
cobOrdField.AddItem "学分", 3
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 cobField_Click()
'得到所选择的排序方式并转化为字段名
Select Case cobField.ListIndex
Case 0: strFieldName = "cno"
Case 1: strFieldName = "cname"
Case 2: strFieldName = "tname"
Case 3: strFieldName = "ccredit"
Case Else: strFieldName = "cno"
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 = "cno"
Case 1: strFieldName = "cname"
Case 2: strFieldName = "tname"
Case 3: strFieldName = "ccredit"
Case Else: strFieldName = "cno"
End Select
Call getFieldOrd
End Sub
Private Sub Form_Resize()
With Me
Frame1.Left = (.ScaleWidth - Frame1.Width) / 2
Frame1.Top = (.ScaleHeight - Frame1.Height) / 2
End With
End Sub
Private Sub Form_Unload(Cancel As Integer)
mdiFrm.stb.SimpleText = "就绪"
Unload Me
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 (rs.BOF) Or (rs.EOF) Then
Call showMsg("没有找到任何记录!", 1)
.Cols = 0
.Rows = 0
frameView.Enabled = False
Else
.Cols = 4
.Rows = 1
frameView.Enabled = True
.TextMatrix(0, 0) = "课程编号"
.TextMatrix(0, 1) = "课程名称"
.TextMatrix(0, 2) = "授课教师姓名"
.TextMatrix(0, 3) = "课程学分"
.ColWidth(0) = 1500
.ColWidth(1) = 1500
.ColWidth(2) = 2500
.ColWidth(3) = 800
On Error GoTo rsErr
Do While Not rs.EOF
.Rows = .Rows + 1
'显示一条记录
For i = 0 To 3
.TextMatrix(MSFlexGrid1.Rows - 1, i) = Trim(rs.Fields(i))
Next i
'移动游标到下一条记录
rs.MoveNext
Loop
End If
End With
Exit Sub
rsErr:
Call showMsg(" ", 0)
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
TxtCno.Text = .TextMatrix(gRow, 0)
TxtCname.Text = .TextMatrix(gRow, 1)
TxtTname.Text = .TextMatrix(gRow, 2)
TxtCcredit.Text = .TextMatrix(gRow, 3)
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 + -