Public Class Form1

    'Declare record structure
    Public Structure pupiltracking
        Dim scn As String
        Dim knownas As String
        Dim surname As String
        Dim reg As String
        Dim sex As String
        Dim simd As Integer
        Dim fme As String
        Dim lac As String
        Dim language As String
        Dim att As Single

        'Calculations and behaviours
        Dim achievinglevel3 As Integer
        Dim achievinglevel4 As Integer
        Dim achievinglevel5 As Integer
        Dim achievinglevel6 As Integer
        Dim achievinglevel7 As Integer

        Dim combinedlevel3 As Integer
        Dim combinedlevel4 As Integer
        Dim combinedlevel5 As Integer
        Dim combinedlevel6 As Integer
        Dim combinedlevel7 As Integer

        Dim tariffpoints As Integer

        Dim studyinglevel3 As Integer
        Dim studyinglevel4 As Integer
        Dim studyinglevel5 As Integer
        Dim studyinglevel6 As Integer
        Dim studyinglevel7 As Integer

        Dim avgengagement As Single
        Dim avgclasswork As Single
        Dim avghomework As Single
        Dim avgoverallprogress As Single

        'Subject tracking and levels
        Dim accounting As String
        Dim accountinglevel As String
        Dim admin As String
        Dim adminlevel As String
        Dim art As String
        Dim artlevel As String
        Dim barista As String
        Dim baristalevel As String
        Dim biology As String
        Dim biologylevel As String
        Dim business As String
        Dim businesslevel As String
        Dim chemistry As String
        Dim chemistrylevel As String
        Dim computing As String
        Dim computinglevel As String
        Dim criminology As String
        Dim criminologylevel As String
        Dim cyber As String
        Dim cyberlevel As String
        Dim designman As String
        Dim designmanlevel As String
        Dim drama As String
        Dim dramalevel As String
        Dim energy As String
        Dim energylevel As String
        Dim english As String
        Dim englishlevel As String
        Dim esl As String
        Dim esllevel As String
        Dim french As String
        Dim frenchlevel As String
        Dim gamesdevlevel As String
        Dim geography As String
        Dim geographylevel As String
        Dim graphics As String
        Dim graphicslevel As String
        Dim healthandfoodtech As String
        Dim healthandfoodtechlevel As String
        Dim history As String
        Dim historylevel As String
        Dim humanbio As String
        Dim humanbiolevel As String
        Dim italian As String
        Dim italianlevel As String
        Dim jewellery As String
        Dim jewellerylevel As String
        Dim mathematics As String
        Dim mathematicslevel As String
        Dim media As String
        Dim medialevel As String
        Dim modernstudies As String
        Dim modernstudieslevel As String
        Dim musiclead As String
        Dim musicleadlevel As String
        Dim music As String
        Dim musiclevel As String
        Dim musictech As String
        Dim musictechlevel As String
        Dim fitness As String
        Dim fitnesslevel As String
        Dim pe As String
        Dim pelevel As String
        Dim personalDev As String
        Dim personalDevlevel As String
        Dim photography As String
        Dim photographylevel As String
        Dim physics As String
        Dim physicslevel As String
        Dim politics As String
        Dim politicslevel As String
        Dim metalwork As String
        Dim metalworklevel As String
        Dim pracwood As String
        Dim pracwoodlevel As String
        Dim re As String
        Dim relevel As String
        Dim refereeing As String
        Dim refereeinglevel As String
        Dim skillsforworkFARE As String
        Dim skillsforworkFARElevel As String
        Dim sociology As String
        Dim sociologylevel As String
        Dim spanish As String
        Dim spanishlevel As String
        Dim sportslead As String
        Dim sportsleadlevel As String
        Dim urdu As String
        Dim urdulevel As String
        Dim visual As String
        Dim visuallevel As String

    End Structure

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'Declare variables and get number of pupils and number of tracking data

        Dim pupilno As Integer
        Dim trackingno As Integer
        Dim behavioursno As Integer

        Dim fivelevel5 As Integer
        Dim threelevel5 As Integer
        Dim onelevel5 As Integer

        Dim percent5at5 As Integer
        Dim percent3at5 As Integer
        Dim percent1at5 As Integer

        Dim fivelevel6 As Integer
        Dim threelevel6 As Integer
        Dim onelevel6 As Integer

        Dim percent5at6 As Integer
        Dim percent3at6 As Integer
        Dim percent1at6 As Integer

        Dim fivelevel7 As Integer
        Dim threelevel7 As Integer
        Dim onelevel7 As Integer

        Dim percent5at7 As Integer
        Dim percent3at7 As Integer
        Dim percent1at7 As Integer


        pupilno = InputBox("How many pupils are there in the pupildata csv file?: ")
        trackingno = InputBox("How many rows in the tracking csv file?: ")
        behavioursno = pupilno


        'Declare array of records 
        Dim pupilrecords(pupilno - 1) As pupiltracking

        'Declare arrays to store pupil data that will be read in from files
        Dim pupilscn(pupilno - 1) As String
        Dim pupilknownas(pupilno - 1) As String
        Dim pupilsurname(pupilno - 1) As String
        Dim pupilreg(pupilno - 1) As String
        Dim pupilsex(pupilno - 1) As String
        Dim pupilsimd(pupilno - 1) As Integer
        Dim pupilfme(pupilno - 1) As String
        Dim pupillac(pupilno - 1) As String
        Dim pupillanguage(pupilno - 1) As String
        Dim pupilatt(pupilno - 1) As Single


        'Declare arrays for tracking data taken from file
        Dim trackingscn(trackingno - 1) As String
        Dim trackingsubject(trackingno - 1) As String
        Dim trackinglevel(trackingno - 1) As String
        Dim trackingwg(trackingno - 1) As String



        'Declare calculations
        Dim trackingatlevel3(trackingno - 1) As Integer
        Dim trackingatlevel4(trackingno - 1) As Integer
        Dim trackingatlevel5(trackingno - 1) As Integer
        Dim trackingatlevel6(trackingno - 1) As Integer
        Dim trackingatlevel7(trackingno - 1) As Integer
        Dim trackingtariffpoints(trackingno - 1) As Integer
        Dim trackingstudyinglevel3(trackingno - 1) As Integer
        Dim trackingstudyinglevel4(trackingno - 1) As Integer
        Dim trackingstudyinglevel5(trackingno - 1) As Integer
        Dim trackingstudyinglevel6(trackingno - 1) As Integer
        Dim trackingstudyinglevel7(trackingno - 1) As Integer


        'Declare arrays for behaviour data
        Dim behaviourscn(behavioursno - 1) As String
        Dim behaviourtariff(behavioursno - 1) As Single
        Dim behaviourengagement(behavioursno - 1) As Single
        Dim behaviourcw(behavioursno - 1) As Single
        Dim behaviourhw(behavioursno - 1) As Single
        Dim behaviourprogress(behavioursno - 1) As Single




        'Initialise record attributes

        For counter = 0 To pupilno - 1 'loop for each pupil 
            pupilrecords(counter).scn = " - "
            pupilrecords(counter).knownas = " - "
            pupilrecords(counter).surname = " - "
            pupilrecords(counter).reg = " - "
            pupilrecords(counter).sex = " - "
            pupilrecords(counter).simd = 0
            pupilrecords(counter).fme = " - "
            pupilrecords(counter).lac = " - "
            pupilrecords(counter).language = " - "
            pupilrecords(counter).att = 0.0
            pupilrecords(counter).achievinglevel3 = 0
            pupilrecords(counter).achievinglevel4 = 0
            pupilrecords(counter).achievinglevel5 = 0
            pupilrecords(counter).achievinglevel6 = 0
            pupilrecords(counter).achievinglevel7 = 0
            pupilrecords(counter).combinedlevel3 = 0
            pupilrecords(counter).combinedlevel4 = 0
            pupilrecords(counter).combinedlevel5 = 0
            pupilrecords(counter).combinedlevel6 = 0

            pupilrecords(counter).tariffpoints = 0.0
            pupilrecords(counter).studyinglevel3 = 0
            pupilrecords(counter).studyinglevel4 = 0
            pupilrecords(counter).studyinglevel5 = 0
            pupilrecords(counter).studyinglevel6 = 0
            pupilrecords(counter).studyinglevel7 = 0
            pupilrecords(counter).avgengagement = 0.0
            pupilrecords(counter).avgclasswork = 0.0
            pupilrecords(counter).avghomework = 0.0
            pupilrecords(counter).avgoverallprogress = 0.0

            'The subject name is the working grade
            pupilrecords(counter).accounting = "-"
            pupilrecords(counter).admin = "-"
            pupilrecords(counter).art = "-"
            pupilrecords(counter).barista = "-"
            pupilrecords(counter).biology = "-"
            pupilrecords(counter).business = "-"
            pupilrecords(counter).chemistry = "-"
            pupilrecords(counter).computing = "-"
            pupilrecords(counter).criminology = "-"
            pupilrecords(counter).cyber = "-"
            pupilrecords(counter).designman = "-"
            pupilrecords(counter).drama = "-"
            pupilrecords(counter).energy = "-"
            pupilrecords(counter).english = "-"
            pupilrecords(counter).esl = "-"
            pupilrecords(counter).french = "-"
            pupilrecords(counter).geography = "-"
            pupilrecords(counter).graphics = "-"
            pupilrecords(counter).healthandfoodtech = "-"
            pupilrecords(counter).history = "-"
            pupilrecords(counter).humanbio = "-"
            pupilrecords(counter).italian = "-"
            pupilrecords(counter).jewellery = "-"
            pupilrecords(counter).mathematics = "-"
            pupilrecords(counter).media = "-"
            pupilrecords(counter).modernstudies = "-"
            pupilrecords(counter).musiclead = "-"
            pupilrecords(counter).music = "-"
            pupilrecords(counter).musictech = "-"
            pupilrecords(counter).fitness = "-"
            pupilrecords(counter).pe = "-"
            pupilrecords(counter).personalDev = "-"
            pupilrecords(counter).photography = "-"
            pupilrecords(counter).physics = "-"
            pupilrecords(counter).politics = "-"
            pupilrecords(counter).metalwork = "-"
            pupilrecords(counter).pracwood = "-"
            pupilrecords(counter).re = "-"
            pupilrecords(counter).refereeing = "-"
            pupilrecords(counter).skillsforworkFARE = "-"
            pupilrecords(counter).sociology = "-"
            pupilrecords(counter).spanish = "-"
            pupilrecords(counter).sportslead = "-"
            pupilrecords(counter).urdu = "-"
            pupilrecords(counter).visual = "-"


            pupilrecords(counter).accountinglevel = "-"
            pupilrecords(counter).adminlevel = "-"
            pupilrecords(counter).artlevel = "-"
            pupilrecords(counter).baristalevel = "-"
            pupilrecords(counter).biologylevel = "-"
            pupilrecords(counter).businesslevel = "-"
            pupilrecords(counter).chemistrylevel = "-"
            pupilrecords(counter).computinglevel = "-"
            pupilrecords(counter).criminologylevel = "-"
            pupilrecords(counter).cyberlevel = "-"
            pupilrecords(counter).designmanlevel = "-"
            pupilrecords(counter).dramalevel = "-"
            pupilrecords(counter).energylevel = "-"
            pupilrecords(counter).englishlevel = "-"
            pupilrecords(counter).esllevel = "-"
            pupilrecords(counter).frenchlevel = "-"
            pupilrecords(counter).gamesdevlevel = "-"
            pupilrecords(counter).geographylevel = "-"
            pupilrecords(counter).graphicslevel = "-"
            pupilrecords(counter).healthandfoodtechlevel = "-"
            pupilrecords(counter).historylevel = "-"
            pupilrecords(counter).humanbiolevel = "-"
            pupilrecords(counter).italianlevel = "-"
            pupilrecords(counter).jewellerylevel = "-"
            pupilrecords(counter).mathematicslevel = "-"
            pupilrecords(counter).medialevel = "-"
            pupilrecords(counter).modernstudieslevel = "-"
            pupilrecords(counter).musiclevel = "-"
            pupilrecords(counter).musicleadlevel = "-"
            pupilrecords(counter).musictechlevel = "-"
            pupilrecords(counter).fitnesslevel = "-"
            pupilrecords(counter).pelevel = "-"
            pupilrecords(counter).personalDevlevel = "-"
            pupilrecords(counter).photographylevel = "-"
            pupilrecords(counter).physicslevel = "-"
            pupilrecords(counter).politicslevel = "-"
            pupilrecords(counter).pracwoodlevel = "-"
            pupilrecords(counter).relevel = "-"
            pupilrecords(counter).metalworklevel = "-"
            pupilrecords(counter).refereeinglevel = "-"
            pupilrecords(counter).skillsforworkFARElevel = "-"
            pupilrecords(counter).sociologylevel = "-"
            pupilrecords(counter).spanishlevel = "-"
            pupilrecords(counter).sportsleadlevel = "-"
            pupilrecords(counter).urdulevel = "-"
            pupilrecords(counter).visuallevel = "-"



        Next


        'Read in pupil data and store in arrays

        FileOpen(1, "C:\Users\mrmar\Documents\Visual Studio 2022\VB Data Files\S56 Tracking Program\S6 Tracking Program\pupildata.csv", OpenMode.Input) ' file stored in Bin/Debug of project 

        For counter = 0 To pupilno - 1 'loop for each pupil 

            ' read one item at a time from the file and store in parallel arrays
            'Get from management report Second Curricular Context
            Input(1, pupilscn(counter))
            Input(1, pupilknownas(counter))
            Input(1, pupilsurname(counter))
            Input(1, pupilreg(counter))
            Input(1, pupilsex(counter))
            Input(1, pupilfme(counter))
            Input(1, pupillac(counter))
            Input(1, pupillanguage(counter))
            Input(1, pupilatt(counter))
            Input(1, pupilsimd(counter))

        Next

        FileClose(1)



        'Read in tracking data and store in arrays

        FileOpen(2, "C:\Users\mrmar\Documents\Visual Studio 2022\VB Data Files\S56 Tracking Program\S6 Tracking Program\tracking.csv", OpenMode.Input) ' file stored in Bin/Debug of project 



        For counter = 0 To trackingno - 1 'loop for each row of tracking 

            ' read one item at a time from the file and store in parallel arrays
            'Get from Management Report First Curricula Context


            Input(2, trackingscn(counter))
            Input(2, trackingsubject(counter))
            Input(2, trackinglevel(counter))
            Input(2, trackingwg(counter))



            'Convert level to shorter names for spreadsheet

            Select Case trackinglevel(counter)
                Case "Advanced Higher"
                    trackinglevel(counter) = "AH"
                Case "Higher"
                    trackinglevel(counter) = "H"
                Case "National 1"
                    trackinglevel(counter) = "N1"
                Case "National 2"
                    trackinglevel(counter) = "N2"
                Case "National 3"
                    trackinglevel(counter) = "N3"
                Case "National 4"
                    trackinglevel(counter) = "N4"
                Case "National 5"
                    trackinglevel(counter) = "N5"
                Case "Not Set"
                    trackinglevel(counter) = "0"
                Case "NPA Level 3"
                    trackinglevel(counter) = "43"
                Case "NPA Level 4"
                    trackinglevel(counter) = "44"
                Case "NPA Level 5"
                    trackinglevel(counter) = "45"
                Case "NPA Level 6"
                    trackinglevel(counter) = "46"
                Case "NPA Level 7"
                    trackinglevel(counter) = "47"
                Case "NC Level 3"
                    trackinglevel(counter) = "NC3"
                Case "NC Level 4"
                    trackinglevel(counter) = "NC4"
                Case "NC Level 5"
                    trackinglevel(counter) = "NC5"
                Case "NC Level 6"
                    trackinglevel(counter) = "NC6"
            End Select

            'Convert working grade to shorter names for spreadsheet

            Select Case trackingwg(counter)
                Case "Pass"
                    trackingwg(counter) = "P"
                Case "Fail"
                    trackingwg(counter) = "F"
                Case "Not Set"
                    trackingwg(counter) = "0"
            End Select



        Next

        FileClose(2)


        'Read in behaviour data and store in arrays

        FileOpen(3, "C:\Users\mrmar\Documents\Visual Studio 2022\VB Data Files\S56 Tracking Program\S6 Tracking Program\behaviours.csv", OpenMode.Input) ' file stored in Bin/Debug of project 

        For counter = 0 To behavioursno - 1 'loop for each row of tracking 
            ' read in average behaviours one item at a time from the file and store in parallel arrays
            'Get from BGE Average Behaviour Chart


            Input(3, behaviourscn(counter))
            Input(3, behaviourtariff(counter))
            Input(3, behaviourengagement(counter))
            Input(3, behaviourcw(counter))
            Input(3, behaviourhw(counter))
            Input(3, behaviourprogress(counter))
        Next

        FileClose(3)





        'Put pupil data into records

        For pupilindex = 0 To pupilno - 1
            pupilrecords(pupilindex).scn = pupilscn(pupilindex)
            pupilrecords(pupilindex).knownas = pupilknownas(pupilindex)
            pupilrecords(pupilindex).surname = pupilsurname(pupilindex)
            pupilrecords(pupilindex).reg = pupilreg(pupilindex)
            pupilrecords(pupilindex).sex = pupilsex(pupilindex)
            pupilrecords(pupilindex).simd = pupilsimd(pupilindex)
            pupilrecords(pupilindex).fme = pupilfme(pupilindex)
            pupilrecords(pupilindex).lac = pupillac(pupilindex)
            pupilrecords(pupilindex).language = pupillanguage(pupilindex)
            pupilrecords(pupilindex).att = pupilatt(pupilindex)
        Next





        'Put tracking data into records for each pupil 


        For pupilindex = 0 To pupilno - 1
            For trackingindex = 0 To trackingno - 1


                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("accounting") Then
                    pupilrecords(pupilindex).accounting = trackingwg(trackingindex)
                    pupilrecords(pupilindex).accountinglevel = trackinglevel(trackingindex)
                End If


                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("administration") Then
                    pupilrecords(pupilindex).admin = trackingwg(trackingindex)
                    pupilrecords(pupilindex).adminlevel = trackinglevel(trackingindex)
                End If


                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("art & design") Then
                    pupilrecords(pupilindex).art = trackingwg(trackingindex)
                    pupilrecords(pupilindex).artlevel = trackinglevel(trackingindex)
                End If



                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("barista") Then
                    pupilrecords(pupilindex).barista = trackingwg(trackingindex)
                    pupilrecords(pupilindex).baristalevel = trackinglevel(trackingindex)
                End If


                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)) = "biology n5" Then
                    pupilrecords(pupilindex).biology = trackingwg(trackingindex)
                    pupilrecords(pupilindex).biologylevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("business") Then
                    pupilrecords(pupilindex).business = trackingwg(trackingindex)
                    pupilrecords(pupilindex).businesslevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("chemistry") Then
                    pupilrecords(pupilindex).chemistry = trackingwg(trackingindex)
                    pupilrecords(pupilindex).chemistrylevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("computing") Then
                    pupilrecords(pupilindex).computing = trackingwg(trackingindex)
                    pupilrecords(pupilindex).computinglevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("criminology") Then
                    pupilrecords(pupilindex).criminology = trackingwg(trackingindex)
                    pupilrecords(pupilindex).criminologylevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("cyber") Then
                    pupilrecords(pupilindex).cyber = trackingwg(trackingindex)
                    pupilrecords(pupilindex).cyberlevel = trackinglevel(trackingindex)
                End If


                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("manufacture") Then
                    pupilrecords(pupilindex).designman = trackingwg(trackingindex)
                    pupilrecords(pupilindex).designmanlevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("drama") Then
                    pupilrecords(pupilindex).drama = trackingwg(trackingindex)
                    pupilrecords(pupilindex).dramalevel = trackinglevel(trackingindex)
                End If


                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("energy") Then
                    pupilrecords(pupilindex).energy = trackingwg(trackingindex)
                    pupilrecords(pupilindex).energylevel = trackinglevel(trackingindex)
                End If


                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)) = "english n5" Then
                    pupilrecords(pupilindex).english = trackingwg(trackingindex)
                    pupilrecords(pupilindex).englishlevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)) = "english" Then
                    pupilrecords(pupilindex).english = trackingwg(trackingindex)
                    pupilrecords(pupilindex).englishlevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("second language") Then
                    pupilrecords(pupilindex).esl = trackingwg(trackingindex)
                    pupilrecords(pupilindex).esllevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("french") Then
                    pupilrecords(pupilindex).french = trackingwg(trackingindex)
                    pupilrecords(pupilindex).frenchlevel = trackinglevel(trackingindex)
                End If


                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("geography") Then
                    pupilrecords(pupilindex).geography = trackingwg(trackingindex)
                    pupilrecords(pupilindex).geographylevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("graphic") Then
                    pupilrecords(pupilindex).graphics = trackingwg(trackingindex)
                    pupilrecords(pupilindex).graphicslevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("food") Then
                    pupilrecords(pupilindex).healthandfoodtech = trackingwg(trackingindex)
                    pupilrecords(pupilindex).healthandfoodtechlevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("history") Then
                    pupilrecords(pupilindex).history = trackingwg(trackingindex)
                    pupilrecords(pupilindex).historylevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)) = "human biology" Then
                    pupilrecords(pupilindex).humanbio = trackingwg(trackingindex)
                    pupilrecords(pupilindex).humanbiolevel = trackinglevel(trackingindex)
                End If


                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("italian") Then
                    pupilrecords(pupilindex).italian = trackingwg(trackingindex)
                    pupilrecords(pupilindex).italianlevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("jewellery") Then
                    pupilrecords(pupilindex).jewellery = trackingwg(trackingindex)
                    pupilrecords(pupilindex).jewellerylevel = trackinglevel(trackingindex)
                End If


                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("mathematics") Then
                    pupilrecords(pupilindex).mathematics = trackingwg(trackingindex)
                    pupilrecords(pupilindex).mathematicslevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("media") Then
                    pupilrecords(pupilindex).media = trackingwg(trackingindex)
                    pupilrecords(pupilindex).medialevel = trackinglevel(trackingindex)
                End If


                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("modern studies") Then
                    pupilrecords(pupilindex).modernstudies = trackingwg(trackingindex)
                    pupilrecords(pupilindex).modernstudieslevel = trackinglevel(trackingindex)
                End If


                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)) = "music" Then
                    pupilrecords(pupilindex).music = trackingwg(trackingindex)
                    pupilrecords(pupilindex).musiclevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)) = "music n5" Then
                    pupilrecords(pupilindex).music = trackingwg(trackingindex)
                    pupilrecords(pupilindex).musiclevel = trackinglevel(trackingindex)
                End If


                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)) = "music leadership" Then
                    pupilrecords(pupilindex).musiclead = trackingwg(trackingindex)
                    pupilrecords(pupilindex).musicleadlevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)) = "music technology" Then
                    pupilrecords(pupilindex).musictech = trackingwg(trackingindex)
                    pupilrecords(pupilindex).musictechlevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("fitness") Then
                    pupilrecords(pupilindex).fitness = trackingwg(trackingindex)
                    pupilrecords(pupilindex).fitnesslevel = trackinglevel(trackingindex)
                End If


                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("pe (sqa)") Then
                    pupilrecords(pupilindex).pe = trackingwg(trackingindex)
                    pupilrecords(pupilindex).pelevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("personal development") Then
                    pupilrecords(pupilindex).personalDev = trackingwg(trackingindex)
                    pupilrecords(pupilindex).personalDevlevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("photography") Then
                    pupilrecords(pupilindex).photography = trackingwg(trackingindex)
                    pupilrecords(pupilindex).photographylevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("physics") Then
                    pupilrecords(pupilindex).physics = trackingwg(trackingindex)
                    pupilrecords(pupilindex).physicslevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("politics") Then
                    pupilrecords(pupilindex).politics = trackingwg(trackingindex)
                    pupilrecords(pupilindex).politicslevel = trackinglevel(trackingindex)
                End If


                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("metalwork") Then
                    pupilrecords(pupilindex).metalwork = trackingwg(trackingindex)
                    pupilrecords(pupilindex).metalworklevel = trackinglevel(trackingindex)
                End If


                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("woodwork") Then
                    pupilrecords(pupilindex).pracwood = trackingwg(trackingindex)
                    pupilrecords(pupilindex).pracwoodlevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("re (sqa)") Then
                    pupilrecords(pupilindex).re = trackingwg(trackingindex)
                    pupilrecords(pupilindex).relevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("refereeing") Then
                    pupilrecords(pupilindex).refereeing = trackingwg(trackingindex)
                    pupilrecords(pupilindex).refereeinglevel = trackinglevel(trackingindex)
                End If


                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("fare") Then
                    pupilrecords(pupilindex).skillsforworkFARE = trackingwg(trackingindex)
                    pupilrecords(pupilindex).skillsforworkFARElevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("sociology") Then
                    pupilrecords(pupilindex).sociology = trackingwg(trackingindex)
                    pupilrecords(pupilindex).sociologylevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("spanish") Then
                    pupilrecords(pupilindex).spanish = trackingwg(trackingindex)
                    pupilrecords(pupilindex).spanishlevel = trackinglevel(trackingindex)
                End If


                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("sports leadership") Then
                    pupilrecords(pupilindex).sportslead = trackingwg(trackingindex)
                    pupilrecords(pupilindex).sportsleadlevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("urdu") Then
                    pupilrecords(pupilindex).urdu = trackingwg(trackingindex)
                    pupilrecords(pupilindex).urdulevel = trackinglevel(trackingindex)
                End If

                If pupilscn(pupilindex) = trackingscn(trackingindex) And LCase(trackingsubject(trackingindex)).Contains("visual") Then
                    pupilrecords(pupilindex).visual = trackingwg(trackingindex)
                    pupilrecords(pupilindex).visuallevel = trackinglevel(trackingindex)
                End If


            Next


        Next

        'work out number of subjects STUDIED at different levels for each pupil

        For pupilindex = 0 To pupilno - 1

            If (pupilrecords(pupilindex).accountinglevel = "AH" Or pupilrecords(pupilindex).accountinglevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).accountinglevel = "H" Or pupilrecords(pupilindex).accountinglevel = "46" Or pupilrecords(pupilindex).accountinglevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).accountinglevel = "N5" Or pupilrecords(pupilindex).accountinglevel = "45" Or pupilrecords(pupilindex).accountinglevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).accountinglevel = "N4" Or pupilrecords(pupilindex).accountinglevel = "44" Or pupilrecords(pupilindex).accountinglevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).accountinglevel = "N3" Or pupilrecords(pupilindex).accountinglevel = "43" Or pupilrecords(pupilindex).accountinglevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If


            If (pupilrecords(pupilindex).adminlevel = "AH" Or pupilrecords(pupilindex).adminlevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).adminlevel = "H" Or pupilrecords(pupilindex).adminlevel = "46" Or pupilrecords(pupilindex).adminlevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).adminlevel = "N5" Or pupilrecords(pupilindex).adminlevel = "45" Or pupilrecords(pupilindex).adminlevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).adminlevel = "N4" Or pupilrecords(pupilindex).adminlevel = "44" Or pupilrecords(pupilindex).adminlevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).adminlevel = "N3" Or pupilrecords(pupilindex).adminlevel = "43" Or pupilrecords(pupilindex).adminlevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).artlevel = "AH" Or pupilrecords(pupilindex).artlevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).artlevel = "H" Or pupilrecords(pupilindex).artlevel = "46" Or pupilrecords(pupilindex).artlevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).artlevel = "N5" Or pupilrecords(pupilindex).artlevel = "45" Or pupilrecords(pupilindex).artlevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).artlevel = "N4" Or pupilrecords(pupilindex).artlevel = "44" Or pupilrecords(pupilindex).artlevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).artlevel = "N3" Or pupilrecords(pupilindex).artlevel = "43" Or pupilrecords(pupilindex).artlevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).baristalevel = "AH" Or pupilrecords(pupilindex).baristalevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).baristalevel = "H" Or pupilrecords(pupilindex).baristalevel = "46" Or pupilrecords(pupilindex).baristalevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).baristalevel = "N5" Or pupilrecords(pupilindex).baristalevel = "45" Or pupilrecords(pupilindex).baristalevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).baristalevel = "N4" Or pupilrecords(pupilindex).baristalevel = "44" Or pupilrecords(pupilindex).baristalevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).baristalevel = "N3" Or pupilrecords(pupilindex).baristalevel = "43" Or pupilrecords(pupilindex).baristalevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).biologylevel = "AH" Or pupilrecords(pupilindex).biologylevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).biologylevel = "H" Or pupilrecords(pupilindex).biologylevel = "46" Or pupilrecords(pupilindex).biologylevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).biologylevel = "N5" Or pupilrecords(pupilindex).biologylevel = "45" Or pupilrecords(pupilindex).biologylevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).biologylevel = "N4" Or pupilrecords(pupilindex).biologylevel = "44" Or pupilrecords(pupilindex).biologylevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).biologylevel = "N3" Or pupilrecords(pupilindex).biologylevel = "43" Or pupilrecords(pupilindex).biologylevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).businesslevel = "AH" Or pupilrecords(pupilindex).businesslevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).businesslevel = "H" Or pupilrecords(pupilindex).businesslevel = "46" Or pupilrecords(pupilindex).businesslevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).businesslevel = "N5" Or pupilrecords(pupilindex).businesslevel = "45" Or pupilrecords(pupilindex).businesslevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).businesslevel = "N4" Or pupilrecords(pupilindex).businesslevel = "44" Or pupilrecords(pupilindex).businesslevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).businesslevel = "N3" Or pupilrecords(pupilindex).businesslevel = "43" Or pupilrecords(pupilindex).businesslevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).chemistrylevel = "AH" Or pupilrecords(pupilindex).chemistrylevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).chemistrylevel = "H" Or pupilrecords(pupilindex).chemistrylevel = "46" Or pupilrecords(pupilindex).chemistrylevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).chemistrylevel = "N5" Or pupilrecords(pupilindex).chemistrylevel = "45" Or pupilrecords(pupilindex).chemistrylevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).chemistrylevel = "N4" Or pupilrecords(pupilindex).chemistrylevel = "44" Or pupilrecords(pupilindex).chemistrylevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).chemistrylevel = "N3" Or pupilrecords(pupilindex).chemistrylevel = "43" Or pupilrecords(pupilindex).chemistrylevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).computinglevel = "AH" Or pupilrecords(pupilindex).computinglevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).computinglevel = "H" Or pupilrecords(pupilindex).computinglevel = "46" Or pupilrecords(pupilindex).computinglevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).computinglevel = "N5" Or pupilrecords(pupilindex).computinglevel = "45" Or pupilrecords(pupilindex).computinglevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).computinglevel = "N4" Or pupilrecords(pupilindex).computinglevel = "44" Or pupilrecords(pupilindex).computinglevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).computinglevel = "N3" Or pupilrecords(pupilindex).computinglevel = "43" Or pupilrecords(pupilindex).computinglevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).criminologylevel = "AH" Or pupilrecords(pupilindex).criminologylevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).criminologylevel = "H" Or pupilrecords(pupilindex).criminologylevel = "46" Or pupilrecords(pupilindex).criminologylevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).criminologylevel = "N5" Or pupilrecords(pupilindex).criminologylevel = "45" Or pupilrecords(pupilindex).criminologylevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).criminologylevel = "N4" Or pupilrecords(pupilindex).criminologylevel = "44" Or pupilrecords(pupilindex).criminologylevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).criminologylevel = "N3" Or pupilrecords(pupilindex).criminologylevel = "43" Or pupilrecords(pupilindex).criminologylevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).cyberlevel = "AH" Or pupilrecords(pupilindex).cyberlevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).cyberlevel = "H" Or pupilrecords(pupilindex).cyberlevel = "46" Or pupilrecords(pupilindex).cyberlevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).cyberlevel = "N5" Or pupilrecords(pupilindex).cyberlevel = "45" Or pupilrecords(pupilindex).cyberlevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).cyberlevel = "N4" Or pupilrecords(pupilindex).cyberlevel = "44" Or pupilrecords(pupilindex).cyberlevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).cyberlevel = "N3" Or pupilrecords(pupilindex).cyberlevel = "43" Or pupilrecords(pupilindex).cyberlevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).designmanlevel = "AH" Or pupilrecords(pupilindex).designmanlevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).designmanlevel = "H" Or pupilrecords(pupilindex).designmanlevel = "46" Or pupilrecords(pupilindex).designmanlevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).designmanlevel = "N5" Or pupilrecords(pupilindex).designmanlevel = "45" Or pupilrecords(pupilindex).designmanlevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).designmanlevel = "N4" Or pupilrecords(pupilindex).designmanlevel = "44" Or pupilrecords(pupilindex).designmanlevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).designmanlevel = "N3" Or pupilrecords(pupilindex).designmanlevel = "43" Or pupilrecords(pupilindex).designmanlevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).dramalevel = "AH" Or pupilrecords(pupilindex).dramalevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).dramalevel = "H" Or pupilrecords(pupilindex).dramalevel = "46" Or pupilrecords(pupilindex).dramalevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).dramalevel = "N5" Or pupilrecords(pupilindex).dramalevel = "45" Or pupilrecords(pupilindex).dramalevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).dramalevel = "N4" Or pupilrecords(pupilindex).dramalevel = "44" Or pupilrecords(pupilindex).dramalevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).dramalevel = "N3" Or pupilrecords(pupilindex).dramalevel = "43" Or pupilrecords(pupilindex).dramalevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).energylevel = "AH" Or pupilrecords(pupilindex).energylevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).energylevel = "H" Or pupilrecords(pupilindex).energylevel = "46" Or pupilrecords(pupilindex).energylevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).energylevel = "N5" Or pupilrecords(pupilindex).energylevel = "45" Or pupilrecords(pupilindex).energylevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).energylevel = "N4" Or pupilrecords(pupilindex).energylevel = "44" Or pupilrecords(pupilindex).energylevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).energylevel = "N3" Or pupilrecords(pupilindex).energylevel = "43" Or pupilrecords(pupilindex).energylevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).englishlevel = "AH" Or pupilrecords(pupilindex).englishlevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).englishlevel = "H" Or pupilrecords(pupilindex).englishlevel = "46" Or pupilrecords(pupilindex).englishlevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).englishlevel = "N5" Or pupilrecords(pupilindex).englishlevel = "45" Or pupilrecords(pupilindex).englishlevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).englishlevel = "N4" Or pupilrecords(pupilindex).englishlevel = "44" Or pupilrecords(pupilindex).englishlevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).englishlevel = "N3" Or pupilrecords(pupilindex).englishlevel = "43" Or pupilrecords(pupilindex).englishlevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).esllevel = "AH" Or pupilrecords(pupilindex).esllevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).esllevel = "H" Or pupilrecords(pupilindex).esllevel = "46" Or pupilrecords(pupilindex).esllevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).esllevel = "N5" Or pupilrecords(pupilindex).esllevel = "45" Or pupilrecords(pupilindex).esllevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).esllevel = "N4" Or pupilrecords(pupilindex).esllevel = "44" Or pupilrecords(pupilindex).esllevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).esllevel = "N3" Or pupilrecords(pupilindex).esllevel = "43" Or pupilrecords(pupilindex).esllevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).frenchlevel = "AH" Or pupilrecords(pupilindex).frenchlevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).frenchlevel = "H" Or pupilrecords(pupilindex).frenchlevel = "46" Or pupilrecords(pupilindex).frenchlevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).frenchlevel = "N5" Or pupilrecords(pupilindex).frenchlevel = "45" Or pupilrecords(pupilindex).frenchlevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).frenchlevel = "N4" Or pupilrecords(pupilindex).frenchlevel = "44" Or pupilrecords(pupilindex).frenchlevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).frenchlevel = "N3" Or pupilrecords(pupilindex).frenchlevel = "43" Or pupilrecords(pupilindex).frenchlevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If


            If (pupilrecords(pupilindex).geographylevel = "AH" Or pupilrecords(pupilindex).geographylevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).geographylevel = "H" Or pupilrecords(pupilindex).geographylevel = "46" Or pupilrecords(pupilindex).geographylevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).geographylevel = "N5" Or pupilrecords(pupilindex).geographylevel = "45" Or pupilrecords(pupilindex).geographylevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).geographylevel = "N4" Or pupilrecords(pupilindex).geographylevel = "44" Or pupilrecords(pupilindex).geographylevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).geographylevel = "N3" Or pupilrecords(pupilindex).geographylevel = "43" Or pupilrecords(pupilindex).geographylevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).graphicslevel = "AH" Or pupilrecords(pupilindex).graphicslevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).graphicslevel = "H" Or pupilrecords(pupilindex).graphicslevel = "46" Or pupilrecords(pupilindex).graphicslevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).graphicslevel = "N5" Or pupilrecords(pupilindex).graphicslevel = "45" Or pupilrecords(pupilindex).graphicslevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).graphicslevel = "N4" Or pupilrecords(pupilindex).graphicslevel = "44" Or pupilrecords(pupilindex).graphicslevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).graphicslevel = "N3" Or pupilrecords(pupilindex).graphicslevel = "43" Or pupilrecords(pupilindex).graphicslevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).healthandfoodtechlevel = "AH" Or pupilrecords(pupilindex).healthandfoodtechlevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).healthandfoodtechlevel = "H" Or pupilrecords(pupilindex).healthandfoodtechlevel = "46" Or pupilrecords(pupilindex).healthandfoodtechlevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).healthandfoodtechlevel = "N5" Or pupilrecords(pupilindex).healthandfoodtechlevel = "45" Or pupilrecords(pupilindex).healthandfoodtechlevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).healthandfoodtechlevel = "N4" Or pupilrecords(pupilindex).healthandfoodtechlevel = "44" Or pupilrecords(pupilindex).healthandfoodtechlevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).healthandfoodtechlevel = "N3" Or pupilrecords(pupilindex).healthandfoodtechlevel = "43" Or pupilrecords(pupilindex).healthandfoodtechlevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).historylevel = "AH" Or pupilrecords(pupilindex).historylevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).historylevel = "H" Or pupilrecords(pupilindex).historylevel = "46" Or pupilrecords(pupilindex).historylevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).historylevel = "N5" Or pupilrecords(pupilindex).historylevel = "45" Or pupilrecords(pupilindex).historylevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).historylevel = "N4" Or pupilrecords(pupilindex).historylevel = "44" Or pupilrecords(pupilindex).historylevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).historylevel = "N3" Or pupilrecords(pupilindex).historylevel = "43" Or pupilrecords(pupilindex).historylevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).humanbiolevel = "AH" Or pupilrecords(pupilindex).humanbiolevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).humanbiolevel = "H" Or pupilrecords(pupilindex).humanbiolevel = "46" Or pupilrecords(pupilindex).humanbiolevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).humanbiolevel = "N5" Or pupilrecords(pupilindex).humanbiolevel = "45" Or pupilrecords(pupilindex).humanbiolevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).humanbiolevel = "N4" Or pupilrecords(pupilindex).humanbiolevel = "44" Or pupilrecords(pupilindex).humanbiolevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).humanbiolevel = "N3" Or pupilrecords(pupilindex).humanbiolevel = "43" Or pupilrecords(pupilindex).humanbiolevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).italianlevel = "AH" Or pupilrecords(pupilindex).italianlevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).italianlevel = "H" Or pupilrecords(pupilindex).italianlevel = "46" Or pupilrecords(pupilindex).italianlevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).italianlevel = "N5" Or pupilrecords(pupilindex).italianlevel = "45" Or pupilrecords(pupilindex).italianlevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).italianlevel = "N4" Or pupilrecords(pupilindex).italianlevel = "44" Or pupilrecords(pupilindex).italianlevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).italianlevel = "N3" Or pupilrecords(pupilindex).italianlevel = "43" Or pupilrecords(pupilindex).italianlevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).jewellerylevel = "AH" Or pupilrecords(pupilindex).jewellerylevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).jewellerylevel = "H" Or pupilrecords(pupilindex).jewellerylevel = "46" Or pupilrecords(pupilindex).jewellerylevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).jewellerylevel = "N5" Or pupilrecords(pupilindex).jewellerylevel = "45" Or pupilrecords(pupilindex).jewellerylevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).jewellerylevel = "N4" Or pupilrecords(pupilindex).jewellerylevel = "44" Or pupilrecords(pupilindex).jewellerylevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).jewellerylevel = "N3" Or pupilrecords(pupilindex).jewellerylevel = "43" Or pupilrecords(pupilindex).jewellerylevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).mathematicslevel = "AH" Or pupilrecords(pupilindex).mathematicslevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).mathematicslevel = "H" Or pupilrecords(pupilindex).mathematicslevel = "46" Or pupilrecords(pupilindex).mathematicslevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).mathematicslevel = "N5" Or pupilrecords(pupilindex).mathematicslevel = "45" Or pupilrecords(pupilindex).mathematicslevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).mathematicslevel = "N4" Or pupilrecords(pupilindex).mathematicslevel = "44" Or pupilrecords(pupilindex).mathematicslevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).mathematicslevel = "N3" Or pupilrecords(pupilindex).mathematicslevel = "43" Or pupilrecords(pupilindex).mathematicslevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).medialevel = "AH" Or pupilrecords(pupilindex).medialevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).medialevel = "H" Or pupilrecords(pupilindex).medialevel = "46" Or pupilrecords(pupilindex).medialevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).medialevel = "N5" Or pupilrecords(pupilindex).medialevel = "45" Or pupilrecords(pupilindex).medialevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).medialevel = "N4" Or pupilrecords(pupilindex).medialevel = "44" Or pupilrecords(pupilindex).medialevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).medialevel = "N3" Or pupilrecords(pupilindex).medialevel = "43" Or pupilrecords(pupilindex).medialevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).modernstudieslevel = "AH" Or pupilrecords(pupilindex).modernstudieslevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).modernstudieslevel = "H" Or pupilrecords(pupilindex).modernstudieslevel = "46" Or pupilrecords(pupilindex).modernstudieslevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).modernstudieslevel = "N5" Or pupilrecords(pupilindex).modernstudieslevel = "45" Or pupilrecords(pupilindex).modernstudieslevel = "NC5") Then
                pupilrecords(pupilindex).studyinglevel5 += 1
            ElseIf (pupilrecords(pupilindex).modernstudieslevel = "N4" Or pupilrecords(pupilindex).modernstudieslevel = "44" Or pupilrecords(pupilindex).modernstudieslevel = "NC4") Then
                pupilrecords(pupilindex).studyinglevel4 += 1
            ElseIf (pupilrecords(pupilindex).modernstudieslevel = "N3" Or pupilrecords(pupilindex).modernstudieslevel = "43" Or pupilrecords(pupilindex).modernstudieslevel = "NC3") Then
                pupilrecords(pupilindex).studyinglevel3 += 1
            End If

            If (pupilrecords(pupilindex).musiclevel = "AH" Or pupilrecords(pupilindex).musiclevel = "47") Then
                pupilrecords(pupilindex).studyinglevel7 += 1
            ElseIf (pupilrecords(pupilindex).musiclevel = "H" Or pupilrecords(pupilindex).musiclevel = "46" Or pupilrecords(pupilindex).musiclevel = "NC6") Then
                pupilrecords(pupilindex).studyinglevel6 += 1
            ElseIf (pupilrecords(pupilindex).musiclevel = "N5" Or pupilrecords(pupilindex).musiclevel = "45" Or pupilrecords(pupilindex).musiclevel = "NC5") Then
                pupilrecords(