Pak Aksan..... Terimakasih! Saya sudah terapkan dan berjalan sempurna. Memang lebih enak kalau main OOP deh. Saya akan selalu berusaha lebih OOP lagi dimasa depan.....:) cgsatu
--- On Thu, 1/14/10, Aksan Kurdin <[email protected]> wrote: From: Aksan Kurdin <[email protected]> Subject: Re: [belajar-access] umpankan nilai To: [email protected] Date: Thursday, January 14, 2010, 3:30 PM Baik, mudah-mudahan penjelasan berikut bisa ditangkap: modul periode saya ubah sebagai berikut: Option Compare Database Public Awal As Date Public akhir As Date 'Sub periode() ' Dim Awal As Date ' Dim akhir As Date ' Awal = Forms!periode! Awal ' akhir = Forms!periode! akhir 'End Sub Sub BukaPeriode( ) DoCmd.OpenForm "Periode", , , , , acDialog Awal = Forms("Periode" )!Awal akhir = Forms("Periode" )!akhir DoCmd.Close acForm, "Periode" End Sub Perhatikan saya telah mendeklarasikan variabel awal dan akhir menjadi public, artinya dari modul lain bisa mengambil nilai variabel tersebut dengan cara seperti: dim a as date a = periode.awal variabel a kita isi variabel awal dari module periode. sampai sini paham kan ? Trik berikutnya adalah sub BukaPeriode. Procedure ini dimaksudkan untuk membuka form periode, menunggu masukan, klik ok, maka form menutup dan variabel awal dan akhir terisi dengan nilai sesuai form. Perhatikan langkah-nya: - buka form periode dalam mode dialog, berarti jendela akan ditempatkan di atas jendela yang lain, dan menghalangi akses ke window di belakangnya hingga form ini ditutup. - setelah form tertutup, maka variabel awal diisikan sesuai text box awal di form "periode" - demikian juga variabel akhir - melepas form periode dari memori (benar-benar tertutup!) nah sekarang tentu timbul pertanyaan, bagaimana bisa awal bisa mengambil nilai dari form "periode" sedangkan form tersebut sudah ditutup ? triknya ada dalam modul form periode berikut: Option Compare Database Private Sub Command4_Click( ) ' 'buka laporan ' DoCmd.OpenReport "Teman", acPreview Me.Visible = False End Sub ya, tombol ok hanya menyembunyikan form dari pandangan, bukan menutupnya, sehingga dia keliatan tertutup tetapi sebenarnya masih terbuka, sehingga kita bisa mengambil nilai property yang ada pada form tersebut. form akan ditutup di modul periode.bukaperiode . sampai sini jelas kan? selanjutnya sekarang perhatikan form teman. modulnya adalah: Private Sub Command15_Click( ) 'MsgBox "Masukkan Periode Yang Diinginkan" ' ''buka form periode 'DoCmd.OpenForm "periode", acNormal periode.BukaPeriode DoCmd.OpenReport "Teman", acViewPreview, , "[hut] between # " & Format(periode. Awal, "m/d/yyyy") & " # and # " & Format(periode. akhir, "m/d/yyyy") & "#" End Sub sekarang kita bisa memanggil prosedur bukaperiode dari modul periode dari form teman dengan sintak periode.bukaperiode apa yang dilakukan adalah membuka form periode secara modal, menerima inputan, dan menyimpan nilai inputan ke dalam public variabel awal dan akhir, lalu menutup form periode. Nah sekarang apa yang anda inginkan sudah tercapai, anda bisa buka report "teman" berdasarkan nilai dari modul periode seperti dalam perintah: DoCmd.OpenReport "Teman", acViewPreview, , "[hut] between # " & Format(periode. Awal, "m/d/yyyy") & " # and # " & Format(periode. akhir, "m/d/yyyy") & "#" Nilai periode.awal dan periode.akhir tetap bisa anda gunakan untuk keperluan di report2 yang lain. Mudah-mudahan sejalan dengan apa yang diinginkan. Aksan Kurdin CGSATU wrote: Saya mau tanya, bagaimana ya caranya parsing value (umpankan nilai) dari satu module ke modul lain di MS Access? Jadi kalau dilihat pada file yang saya kirimkan, akan ada dua buah module, satu namanya module Navigasi, disini semua fungsi untuk menjelajah data saya simpan dan bisa digunakan untuk semua form yang (bakalan) ada di aplikasi Tidak ada masalah disini Nah, sekarang masalah modul periode, disini, nampak bahwa saya ingin mengambil nilai dari form periode, dimana ada tanggal awal dan tanggal akhir Dua nilai yang ada dalam variabel (awal dan akhir) ini, ingin saya manfaatkan berkali-kali. Bagaimana caranya? Jadi jika saya ingin membuat laporan atau data berdasarkan periode, saya TIDAK PERLU berulangkali menuliskan kode sbb : DoCmd.OpenReport "Teman", acViewPreview, , "[hut] between # " & Format([awal] , "m/d/yyyy") & " # and # " & Format([akhir] , "m/d/yyyy") & " #" Jadi keinginan saya adalah, form Periode cuma sebagai alat ambil nilai (dalam kasus ini tanggal). Dan jika saya buat tabel lain, yang ada datanya, form Periode dan Module periode ini tetap bisa "supply data tanggal" berkali-kali. O ya, tentu saya pakai MS Access 2003, dengan format masih di MS Access 2000. Terimakasih banyak sebelumnya

