' Load the data from the database.
Private Sub LoadData()
Dim ws As Workspace
Dim db As Database
Dim student_rs As Recordset
Dim score_rs As Recordset
Dim query As String    ' Use the default workspace.
    Set ws = DBEngine.Workspaces(0)    ' Open the database.
    Set db = ws.OpenDatabase(App.Path & "\graphdb.mdb")    ' Create a Recordset to read name,
    ' ID, and age information.
    query = _
        "SELECT FirstName, LastName, " & _
        "StudentID, Age FROM Students " & _
        "ORDER BY StudentID"
    Set student_rs = _
        db.OpenRecordset(query, dbOpenSnapshot)    ' Read the name, ID, and age information.
    With student_rs
        Do While Not .EOF
            NumStudents = NumStudents + 1
            '下面语句的感叹号表示什么意思
            ReDim Preserve Students(1 To NumStudents)
            Students(NumStudents).LastName = !LastName             Students(NumStudents).FirstName = !FirstName
            Students(NumStudents).Age = !Age
            Students(NumStudents).StudentID = !StudentID
        
            #If DEBUG_MSGS = 1 Then
                Debug.Print _
                    Students(NumStudents).FirstName & " " & _
                    Students(NumStudents).LastName & ", Age: " & _
                    Students(NumStudents).Age & ", ID: " & _
                    Students(NumStudents).StudentID
            #End If
        
            ' Get this student's test scores.
            query = _
                "SELECT TestNumber, Score FROM " & _
                "TestScores WHERE StudentID=" & _
                !StudentID & _
                " ORDER BY TestNumber"
            Set score_rs = _
                db.OpenRecordset(query, dbOpenSnapshot)
            Do While Not score_rs.EOF
                Students(NumStudents).Score( _
                    score_rs!TestNumber) = _
                    score_rs!Score
                    
                #If DEBUG_MSGS = 1 Then
                    Debug.Print _
                        "    Score(" & _
                        Format$(score_rs!TestNumber) & ") = " & _
                        Students(NumStudents).Score( _
                        score_rs!TestNumber)
                #End If
                
                score_rs.MoveNext
            Loop
            score_rs.Close            ' Go get the next student record.
            .MoveNext
        Loop
    End With
    student_rs.Close
    
    ' Close the workspace.
    ws.Close
End Sub