Bila di bagian sebelumnya, kita sudah membuat laporan dengan dua macam mode tampilan yang berasal dari satu form (satu tabel), yang sesuai dengan permintaan pengguna, maka pada bagian ini, kita akan membuat laporan dengan dua macam mode tampilan yang berasal dari dua macam form (dua tabel).
Seperti diketahui, tblRekDerivatif1 dan tblRekDerivatif2, kecuali nama field, kedua tabel itu memiliki properti yang sama, baik dari tipe data maupun dari field properties. Dengan kesamaan yang ada ini, kita bisa membuat satu macam report untuk dua sumber record (record source) yang berbeda. Penjelasannya seperti ini.
Form untuk memasukkan data ke tblRekDerivatif1 adalah frmRekDerivatif1, sedangkan form untuk tblRekDerivatif2 adalah frmRekDerivarif2. Kedua form itu mempunyai format yang persis sama (lihat di posting berjudul Membuat Form dengan Menggunakan Blank Form).
Pastikan bahwa kedua form itu juga mempunyai tombol perintah seperti pada posting yang berjudul Memodifikasi Report Berdasarkan Permintaan Pengguna di gambar 4, tombol perintah Preview untuk menampilkan form dialog Preview Report. Masing-masing form itu, bila tombol perintah Preview diklik, akan memerintahkan Access untuk menciptakan variable global yang nilainya sama dengan deriv1 untuk rekening derivatif 1 dan deriv2 untuk rekening derivatif 2 dan disimpan dalam memori sementara. Setelah itu, Access membuka form dialog Preview Report (tampilannya seperti pada gambar 1, posting dengan jdul yang sama).
Form dialog Preview Report itu, berdasarkan variabel global, kemudian akan mengolah data yang dibutuhkan. Jadi misalnya, bila nilai variabel global sama dengan deriv1, maka form dialog akan mengolah data yang berkaitan dengan rekening derivatif 1. Demikian pula untuk variabel global deriv2.
Pada saat tombol Lihat Laporan ditekan, Access akan membuka report yang sumber datanya juga diolah berdasarkan variabel global. Proses untuk membuat laporan itu, secara substansi, sama seperti yang terjadi dengan form dialog ini.
Jadi, proses membuat satu laporan ini melibatkan dua form sebagai sumber data, yaitu frmRekDerivatif1 dan frmRekDerivatif2, satu form dialog (frmRekDerivatif Dialog), dan satu laporan yang bisa menghasilkan dua macam mode tampilan (rptRekDerivatif), seperti tampak pada gambar di bawah.
Tahap 1. Bukalah Form view dari frmReKDerivatif1 seperti di bawah ini. Demikian juga dengan frmRekDerivatif2.
Ubahlah tempilannya ke Design view. Lalu, pada properti form On Open dan tombol perintah Preview On Click, isikan code VBA di bawah ini:
Form frmRekDerivatif1:
TempVars.Add "RekDeriv", "deriv1" adalah metode VBA yang digunakan untuk membuat variabel sementara dengan nama RekDeriv, deriv1 adalah nilai dari RekDeriv. BukaForm ("frmRekDerivatifDialog") adalah fungsi dalam modul mdlGlobal dan dalam hal ini digunakan untuk membuka form frmRekDerivatifDialog.
Tahap 2. Sebelum form dibuka, kita harus membuat terlebih dahulu form dialog dengan nama frmRekDerivatifDialog berikut procedure yang ada di dalamnya. Cara singkatnya seperti ini:
Tahap 3. Membuat rptRekDerivatif. Cara mudahnya seperti ini:
Bila form frmRekDerivatif2 dibuka dan tombol perintah Preview ditekan akan muncul form dialog Preview Report:
Tampilan reportnya adalah sebagai berikut:
Seperti diketahui, tblRekDerivatif1 dan tblRekDerivatif2, kecuali nama field, kedua tabel itu memiliki properti yang sama, baik dari tipe data maupun dari field properties. Dengan kesamaan yang ada ini, kita bisa membuat satu macam report untuk dua sumber record (record source) yang berbeda. Penjelasannya seperti ini.
Form untuk memasukkan data ke tblRekDerivatif1 adalah frmRekDerivatif1, sedangkan form untuk tblRekDerivatif2 adalah frmRekDerivarif2. Kedua form itu mempunyai format yang persis sama (lihat di posting berjudul Membuat Form dengan Menggunakan Blank Form).
Pastikan bahwa kedua form itu juga mempunyai tombol perintah seperti pada posting yang berjudul Memodifikasi Report Berdasarkan Permintaan Pengguna di gambar 4, tombol perintah Preview untuk menampilkan form dialog Preview Report. Masing-masing form itu, bila tombol perintah Preview diklik, akan memerintahkan Access untuk menciptakan variable global yang nilainya sama dengan deriv1 untuk rekening derivatif 1 dan deriv2 untuk rekening derivatif 2 dan disimpan dalam memori sementara. Setelah itu, Access membuka form dialog Preview Report (tampilannya seperti pada gambar 1, posting dengan jdul yang sama).
Form dialog Preview Report itu, berdasarkan variabel global, kemudian akan mengolah data yang dibutuhkan. Jadi misalnya, bila nilai variabel global sama dengan deriv1, maka form dialog akan mengolah data yang berkaitan dengan rekening derivatif 1. Demikian pula untuk variabel global deriv2.
Pada saat tombol Lihat Laporan ditekan, Access akan membuka report yang sumber datanya juga diolah berdasarkan variabel global. Proses untuk membuat laporan itu, secara substansi, sama seperti yang terjadi dengan form dialog ini.
Jadi, proses membuat satu laporan ini melibatkan dua form sebagai sumber data, yaitu frmRekDerivatif1 dan frmRekDerivatif2, satu form dialog (frmRekDerivatif Dialog), dan satu laporan yang bisa menghasilkan dua macam mode tampilan (rptRekDerivatif), seperti tampak pada gambar di bawah.
Gambar 1 |
Tahap 1. Bukalah Form view dari frmReKDerivatif1 seperti di bawah ini. Demikian juga dengan frmRekDerivatif2.
Gambar 2 |
Ubahlah tempilannya ke Design view. Lalu, pada properti form On Open dan tombol perintah Preview On Click, isikan code VBA di bawah ini:
Form frmRekDerivatif1:
Private Sub Form_Open(Cancel As Integer) Me.Caption = "Daftar Kode Rekening - Rekening Derivatif 1 " & Nz(IdPerusahaan("Nama"), "") If Not IsNull(Me.LoginPgn) Then Me.logout.Visible = True End Sub Private Sub Preview_Click() TempVars.Add "RekDeriv", "deriv1" BukaForm ("frmRekDerivatifDialog") End SubForm frmReKDerivatif2:
Private Sub Form_Open(Cancel As Integer) Me.Caption = "Daftar Kode Rekening - Rekening Derivatif 2 " & Nz(IdPerusahaan("Nama"), "") If Not IsNull(Me.LoginPgn) Then Me.logout.Visible = True End Sub Private Sub Preview_Click() TempVars.Add "RekDeriv", "deriv2" BukaForm ("frmRekDerivatifDialog") End Sub
TempVars.Add "RekDeriv", "deriv1" adalah metode VBA yang digunakan untuk membuat variabel sementara dengan nama RekDeriv, deriv1 adalah nilai dari RekDeriv. BukaForm ("frmRekDerivatifDialog") adalah fungsi dalam modul mdlGlobal dan dalam hal ini digunakan untuk membuka form frmRekDerivatifDialog.
Tahap 2. Sebelum form dibuka, kita harus membuat terlebih dahulu form dialog dengan nama frmRekDerivatifDialog berikut procedure yang ada di dalamnya. Cara singkatnya seperti ini:
- Kopilah frmRekUtamaDialog yang ada di Navigation pane menjadi frmRekDerivatifDialog. Lalu, bukalah Design view frmRekDerivatifDialog.
- Hapus combo box Grup yang ada dalam frmRekDerivatifDialog.
- Pada combo box DariKodeRek, isikanlah properti Row Source = SELECT KodeDeriv1, NamaDeriv1 FROM tblRekDerivatif1;
- Pada combo box sdKodeRek, isikanlah properti Row Source = SELECT KodeDeriv1, NamaDeriv1 FROM tblRekDerivatif1 WHERE KodeDeriv1>= [Forms]![frmRekDerivatifDialog]![DariKodeRek] ORDER BY KodeDeriv1;
- Isikanlah prosedur berikut ini ke Form_frmRekDerivatifDialog:
Option Compare Database Private Sub Command1_Click() If Me.FrameModeTampilan = 2 Then If IsNull(Me.DariKodeRek) Or IsNull(Me.sdKodeRek) Then MsgBox "Kode rekening tidak boleh ada yang kosong", vbExclamation, "Kode Rekening Kosong" Exit Sub End If If Me.DariKodeRek > Me.sdKodeRek Then MsgBox "Kolom sampai Kode Rekening tidak boleh lebih kecil dari pada kolom Dari Kode Rekening", vbExclamation, "Kode Rekening Kosong" Exit Sub End If End If PreviewUnRefresh ("rptRekDerivatif") End Sub Private Sub DariKodeRek_AfterUpdate() Me.sdKodeRek.Requery End Sub Private Sub Form_Open(Cancel As Integer) Dim strCaption As String strCaption = "1 " If [TempVars]![RekDeriv] = "deriv2" Then strCaption = "2 " Me.DariKodeRek.RowSource = "SELECT KodeDeriv2, NamaDeriv2 FROM tblRekDerivatif2;" Me.sdKodeRek.RowSource = "SELECT KodeDeriv2, NamaDeriv2 FROM tblRekDerivatif2 WHERE KodeDeriv2>=[Forms]![frmRekDerivatifDialog]![DariKodeRek] ORDER BY KodeDeriv2;" End If Me.Caption = "Preview Report Daftar Kode Rekening - Rekening Derivatif " & strCaption & Nz(IdPerusahaan("Nama"), "") End Sub Private Sub Form_Unload(Cancel As Integer) TempVars.Remove ("RekDeriv") End Sub Private Sub FrameModeTampilan_AfterUpdate() If Me.FrameModeTampilan = 2 Then Me.DariKodeRek.Enabled = True Me.sdKodeRek.Enabled = True Me.Form.Requery Else Me.DariKodeRek.Enabled = False Me.sdKodeRek.Enabled = False End If End Sub
- Simpan form dan prosedur yang ada. Tampilan Form view dari frmRekDerivatifDialog:
Gambar 3 |
Tahap 3. Membuat rptRekDerivatif. Cara mudahnya seperti ini:
- Kopilah rptRekUtama yang ada di Navigation pane menjadi rptRekDerivatif. Lalu, bukalah Design view rptRekDerivatif.
- Gantilah judul label Auto_Title0 Daftar Kode Rekening – Rekening Utama menjadi Daftar Kode Rekening – Rekening Derivatif 1.
- Pada properti report Record Source, isikanlah query: SELECT KodeDeriv1, NamaDeriv1, Catatan FROM tblRekDerivatif1 WHERE KodeDeriv1 Between [Forms]![frmRekDerivatifDialog]![DariKodeRek] And [Forms]![frmRek DerivatifDialog]![sdKodeRek];
- Hapuslah label Nama Grup pada Page header dan combo box Grup pada detail.
- Pada bagian text box DariKodeRek isikan Control Source = =[Forms]![frmRekDerivatifDialog]![DariKodeRek] & " - " & [Forms]! [frmRekDerivatifDialog]![DariNamaRek]
- Pada bagian text box sdKodeRek isikan Control Source = =[Forms]![frmRek DerivatifDialog]![sdKodeRek] & " - " & [Forms]![frmRekDerivatifDialog]! [sdNamaRek]
- Pada bagian Page header, di sebelah kanan label Nama Rekening sisipkan label Catatan.
- Pada bagian detail, sisipkan text box dengan Name = Catatan dan Control Source = Catatan.
- Isikanlah prosedur berikut ini ke Report_rptRekDerivatif:
Option Compare Database Private Sub Report_Open(Cancel As Integer) Dim strCaption As String strCaption = "Rekening Derivatif 1" If [TempVars]![RekDeriv] = "deriv2" Then strCaption = "Rekening Derivatif 2" Me.RecordSource = "SELECT KodeDeriv2, NamaDeriv2, Catatan FROM tblRekDerivatif2 WHERE KodeDeriv2 Between [Forms]![frmRekDerivatifDialog]![DariKodeRek] And [Forms]![frmRekDerivatifDialog]![sdKodeRek];" Me.Rek_Kode.ControlSource = "KodeDeriv2" Me.Rek_Nama.ControlSource = "NamaDeriv2" End If Me.Auto_Title0.Caption = "Daftar Kode Rekening – " & strCaption If Form_frmRekDerivatifDialog.FrameModeTampilan = 1 Then Me.lblOpsi.Caption = Form_frmRekDerivatifDialog. lblTampilkanSemua.Caption If [TempVars]![RekDeriv] = "deriv2" Then Me.RecordSource = "SELECT KodeDeriv2, NamaDeriv2, Catatan FROM tblRekDerivatif2;" Else Me.RecordSource = "SELECT KodeDeriv1, NamaDeriv1, Catatan FROM tblRekDerivatif1;" End If Else Me.lblOpsi.Caption = Form_frmRekDerivatifDialog. lblTampilkanBerdasarkanRange. Caption Me.DariKodeRek.Visible = True Me.sdKodeRek.Visible = True End If DoCmd.Maximize End Sub
- Simpan report dan prosedur yang ada. Tampilan Print preview dari rptRekDerivatif, berdasarkan form yang ada pada Gambar 3 di atas akan tampak seperti Gambar 4 (bawah).
Gambar 4 |
Bila form frmRekDerivatif2 dibuka dan tombol perintah Preview ditekan akan muncul form dialog Preview Report:
Gambar 5 |
Tampilan reportnya adalah sebagai berikut:
Gambar 6 |
Comments
Post a Comment