Hi,
I'm trying to simplify and make this piece of code more efficient (basically would like to remove the 2nd loop); any suggestions?
Thanks
Yann
	
							
						
					I'm trying to simplify and make this piece of code more efficient (basically would like to remove the 2nd loop); any suggestions?
Thanks
Yann
Code:
	    Dim db As Database, rst1 As Recordset, rst2 As Recordset, qry1 As String, qry2 As String
    Dim intCurrentProgress As Integer, intTotalWidth As Integer, intProgressBarMax As Integer
    q = MsgBox("Are you sure you want to update all ranks?", vbExclamation + vbOKCancel)
    If q = vbCancel Then Exit Function
    
    qry1 = "SELECT DISTINCT tblStudents.StudentID, tblStudents.RankID FROM tblStudents INNER JOIN tblGradingResults ON tblStudents.StudentID = tblGradingResults.StudentID"
    Set db = CurrentDb()
    Set rst1 = db.OpenRecordset("qryLastGradingPerStudent")
    intProgressBarMax = rst1.RecordCount
    
    SysCmd acSysCmdInitMeter, "Updating: ", intProgressBarMax
    If Not rst1.EOF Then
        rst1.MoveFirst
        Do Until rst1.EOF
                
        SysCmd acSysCmdUpdateMeter, intCurrentProgress
        
        qry2 = "SELECT tblStudents.StudentID, tblStudents.RankID, tblStudents.LastGrading FROM tblStudents WHERE (((tblStudents.StudentID)=" & rst1!StudentID & "))"
        Set rst2 = db.OpenRecordset(qry2)
            rst2.Edit
                rst2!RankID = rst1!RankID
                rst2!LastGrading = rst1!GradingDate
                rst2.Update
            rst2.Close
                Set rst2 = Nothing
            
            
            'update Progress Barr
            intCurrentProgress = intCurrentProgress + 1
        rst1.MoveNext
        Loop
    End If
    
    rst1.Close
'    rst2.Close
    Set rst1 = Nothing
    Set rst2 = Nothing
    Set db = Nothing
 
	
Comment