Saya memiliki modul yang mencetak serangkaian laporan berdasarkan kueri (Laporan kelas CAP gr 5) dengan mengulang tabel lain (School_room_grade). Laporan dicetak berdasarkan WhereCondition dalam modul yang cocok dengan baris dalam tabel School_room_grade. Proses ini digunakan agar setiap kombo kelas_ruang_sekolah mempunyai laporannya secara bersamaan dan penggunaan laporan tersebut tidak diperlukan.
Salah satu laporan (CAP Math Gr 5) telah dimodifikasi dan sekarang mencakup 7 sublaporan tertaut yang membuat prosesnya lambat. Masing-masing sublaporan didasarkan pada kueri yang sama namun diurutkan menggunakan bidang yang berbeda. Saya pikir mungkin lebih baik untuk membatalkan tautan sublaporan dan membatasi kueri hanya pada satu kombinasi kelas_ruang_sekolah pada satu waktu. Ketika saya pertama kali membuat laporan tanpa menghubungkan sublaporan, laporan itu sepertinya berjalan lebih cepat. Namun tentu saja bila tidak dihubungkan maka penyortiran laporan tidak akan berfungsi.
Saya berpikir bahwa saya harus membuat loop bersarang dengan kueri di luar dan kemudian mengulangi pencetakan laporan. Apakah menurut Anda ini akan meningkatkan kecepatan?
Berikut kode pencetakan laporan asli yang berfungsi sebelum ditambahkan ke laporan tertaut.
Option Compare Database
'------------------------------------------------------------
' Print Grade 5 & 6 CAP homeroom reports
'
'------------------------------------------------------------
Sub PrintReports()
Dim rs As DAO.Recordset
Dim rptArr As Variant
Dim rpt As Long
rptArr = Array("CAP MATH GR 5", "CAP ELA GR 5")
Set rs = CurrentDb.OpenRecordset("school_room_query_table_5")
With rs
.MoveFirst
Do While Not .EOF
For rpt = LBound(rptArr) To UBound(rptArr)
DoCmd.OpenReport ReportName:=rptArr(rpt), View:=acViewNormal, _
WhereCondition:="[school_room_grade] = '" & rs!school_room_grade & "'"
Next
.MoveNext
Loop
.Close
End With
MsgBox "Done"
End Sub
Kueri yang menjadi dasar semua laporan: [laporan kelas cap gr 5] - bidang kriterianya adalah [kelas_ruang_sekolah]. Tabel yang digunakan untuk perulangan adalah [school_room_query_table_5] dan bidang yang cocok adalah [school_room_grade]
Saya belum pernah melakukan perulangan melalui kueri bernama - dapatkah itu dilakukan?