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