Minggu, 08 April 2012

Report Tanpa Query

Report atau laporan biasanya memiliki kriteria-kriteria tertentu, dan banyak cara yang bisa dilakukan untuk menampilkan report dengan kriteria-kriteria tertentu, cara termudah adalah dengan membuat sebuah query terlebih dahulu dan menjadikannya sebagai record source dari report yang akan ditampilkan.
Namun jika anda ingin membuat report dengan kriteria tanpa harus membuat query terlebih dahulu, hal ini bisa saja dilakukan dengan menggunakan perintah DoCmd.OpenReport, asalkan anda mengetahui SQL statement (khususnya Where Clause), karena dalam pembuatan report tanpa query, yang harus anda perhatikan adalah string Where Condition, karena ini syarat mutlaknya.
Struktur dari perintah DoCmd.OpenReport adalah sebagai berikut :
DoCmd.OpenReport(ReportName, View, FilterName, WhereCondition, WindowMode, OpenArgs)
  1. ReportName : Nama dari report yang akan dieksekusi -> Wajib
  2. View : Action yang akan dilakukan terhadap report (Misalnya langsung dicetak atau dipreview) -> Opsional (Namun penulis rasa "agak sedikit wajib" untuk ditentukan, minimal dipreview atau diprint)
  3. FilterName : Secara umum adalah nama query atau string yang merujuk kepada query yang telah dibuat -> Opsional.
  4. WhereCondition : Ini syarat mutlak yang penulis bilang sebelumnya, string SQL (Where Clause), namun dalam pembuatan string ini anda tidak boleh menempatkan kata where, karena access secara otomatis akan memasukkan kata where kedalam syntax ini -> Opsional (Namun wajib dalam tulisan ini).
  5. WindowMode : Mode tampilan dari report, yang sama seperti dalam Form -> Opsional.
  6. OpenArgs : Property OpenArgs -> Opsional.

Dibawah ini adalah contoh penerapannya (mempreview report) versi penulis :
1. Tabel yang digunakan :
     Nama Tabel : tblUser
     Field dalam tabel :
          NamaUser (Text)
          PasswordUser (Text)
          LevelUser (Text) -> Isiannya : ADMIN atau AUDIT atau INPUT DATA
          NomorUser (Number)
          TanggalMasuk (Date/Time)
2. Form yang digunakan :
     Nama Form : frmKriteriaReport
     Control-control dalam form :
          2(dua) buah Textbox (tglAwal dan tglAkhir)
               Format : Tanggal
               Default value tglAwal = 1 tahun sebelum tanggal hari ini (Date)
               Default value tglAkhir = Date.
          1(satu) buah Combobox (cboLevel)
               Type : Value List
               Rowsource : ADMIN, AUDIT dan INPUT DATA.
               Properti Limit To List = No
          1(satu) buah Command button (cmdPreview)
3. Report
     Nama report : rptUser -> yang dibuat menggunakan Tabel tblUser
4. Code dari event On Click pada cmdPreview :
Private Sub cmdPreview_Click()
On Error GoTo Err_cmdPreview_Click

Dim stDocName As String
Dim stDocCriteria As String

stDocName = "rptUser"

If IsNull(Me.cboLevel) Then
stDocCriteria = "[TanggalMasuk] >=[Forms]![frmKriteriaReport]![tglAwal] And [TanggalMasuk]<=[Forms]![frmKriteriaReport]![tglAkhir]"
Else
If cboLevel = "ADMIN" Or cboLevel = "AUDIT" Or cboLevel = "INPUT DATA" Then
stDocCriteria = "[LevelUser] = [Forms]![frmKriteriaReport]![cboLevel]  And [TanggalMasuk] >=[Forms]![frmKriteriaReport]![tglAwal] And [TanggalMasuk]<=[Forms]![frmKriteriaReport]![tglAkhir]"
Else
stDocCriteria = "Error"
End If
End If

If stDocCriteria <> "Error" Then
    DoCmd.OpenReport stDocName, acViewPreview, , stDocCriteria
Else
MsgBox "Terjadi kesalahan penginputan, silahkan dicek kembali."
End If

Exit_cmdPreview_Click:
    Exit Sub

Err_cmdPreview_Click:
    MsgBox Err.Description
    Resume Exit_cmdPreview_Click
End Sub

Penjelasan Code :
Dalam code yang penulis buat diatas :
Jika cboLevel bernilai null, maka report akan ditampilkan dengan kriteria :
Periode antara tglAwal dan tglAkhir.
Jika user memilih ADMIN atau AUDIT atau INPUT DATA, maka report akan ditampilkan dengan kriteria :
User dengan LevelUser dari cboLevel yang dipilih, dan dengan periode antara tglAwal dan tglAkhir.
Jika pada cboLevel User mengetik selain ADMIN atau AUDIT atau INPUT DATA, maka akan menghasilkan stDocCriteria = Error, lalu akan ditampilkan pesan :
Terjadi kesalahan penginputan, silahkan dicek kembali.
Selain dari itu semua, jika terjadi error, maka akan ditampilkan pesan error standar ms access.
Jika report langsung dicetak, maka yang digunakan adalah acViewNormal.
Perhatikan struktur penulisan perintah DoCmd.OpenReport diatas termasuk tanda koma (,). Jangan sampai salah atau terbalik.
Untuk file contohnya bisa didownload dari 4shared.

Semoga Bermanfaat...

0 comments:

Posting Komentar

No Sara, Violence, Porn, And Spamming Allowed

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Laundry Detergent Coupons