I never tried doing a batch insert, but you can always just do an excute statement inside the for loop instead. But you would have to make sure your first assigment statement to strSQL doesn't include itself.

VB Code:
  1. For intCounter = 1 To ClassInfos.Count
  2. strSQL = " Insert into Class(ClassID,ProgramID,StudentID) Values("
  3. strSQL = strSQL & "'" & ClassInfos.Item(intCounter).ClassID & "','" & PInfo.ProgramID & "','" & SInfo.StudentID & "')" & vbCrLf
  4. adoCmd.Execute strSQL
  5. Debug.Print strSQL
  6. Next intCounter