Private Sub stat3(classID) '统计某班不及格的学生
On Error GoTo errh
    On Error GoTo errh
    Text3.Text = Text3.Text & vbCrLf & "***********************"
    Text3.Text = Text3.Text & vbCrLf & Combo3.Text
    Dim q As String
        q = "SELECT [课程].[课程ID], [成绩].[成绩], [课程].[课程名称],[学生].[名字] From 学生, 课程, 成绩 WHERE [学生].[学号] Like" & "'" & classID & "##' And [学生].[学生ID]=[成绩].[学生ID] And [成绩].[课程ID]=[课程].[课程ID] ORDER BY [课程].[课程ID]"
    Dim rs As New ADODB.Recordset
    Set rs = cn.Execute(q)
    If rs.EOF Then
        rs.Close
        Set rs = Nothing
        Exit Sub
    End If
    rs.MoveFirst
        Do While Not rs.EOF
        If rs.Fields(1).Value < 60 Then
            Text3.Text = Text3.Text & vbCrLf & rs.Fields(3).Value & Space(5) & rs.Fields(2) & Space(5) & rs.Fields(1)
        End If
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
    Exit Sub
errh:
    MsgBox Err.Description
End Sub
我要用来实现不及格的学生显示在Text3中,请问这段代码有写错吗?如果错了应该怎么更正。请高手帮忙看一下。。十分感谢。。!!

解决方案 »

  1.   

    看到许多没有用的代码....帮你简化以下吧 错不错就不管了 Private Sub stat3(classID) '统计某班不及格的学生 
    On Error GoTo errh 
        On Error GoTo errh 
        Text3.Text = Text3.Text & vbCrLf & "***********************" 
        Text3.Text = Text3.Text & vbCrLf & Combo3.Text 
        Dim q As String 
            q = "SELECT [课程].[课程ID], [成绩].[成绩], [课程].[课程名称],[学生].[名字] From 学生, 课程, 成绩 WHERE [学生].[学号] Like" & "'" & classID & "##' And [学生].[学生ID]=[成绩].[学生ID] And [成绩].[课程ID]=[课程].[课程ID] ORDER BY [课程].[课程ID]" 
        Dim rs As New ADODB.Recordset 
        rs.open q,cn
            Do While Not rs.EOF 
            If rs.Fields(1).Value < 60 Then 
                Text3.Text = Text3.Text & vbCrLf & rs.Fields(3).Value & Space(5) & rs.Fields(2) & Space(5) & rs.Fields(1) 
            End If 
            rs.MoveNext 
        Loop 
        rs.Close 
        Exit Sub 
    errh: 
        MsgBox Err.Description 
    End Sub 
      

  2.   

    效率太低Private Sub stat3(ByVal classID As String)
        On Error GoTo errh
        
        Dim q As String
        Dim rs As ADODB.Recordset
        
        Text3.SelLength = &HFFFF&
        Text3.SelText = vbCrLf & "***********************" & vbCrLf
        Text3.SelText = Combo3.Text & vbCrLf
        q = "SELECT [学生].[名字],[课程].[课程名称],[成绩].[成绩], " & _
            " From 学生, 课程, 成绩" & _
            " WHERE [学生].[学号] Like'" & classID & "##'" & _
            " And [成绩].[成绩] < 60" & _
            " And [学生].[学生ID]=[成绩].[学生ID]" & _
            " And [成绩].[课程ID]=[课程].[课程ID]" & _
            " ORDER BY [课程].[课程名称]"
        Set rs = cn.Execute(q)
        Text3.SelText = rs.GetString(, , Space(5), vbCrLf)
        
        Exit Sub
    errh:
        MsgBox Err.Description
    End Sub