Jumat, 23 Maret 2012

Mencegah Error 2501

Dalam tulisan sebelumnya, penulis sudah membahas tentang cara untuk mencegah pencetakan atau preview report jika reportnya tidak memiliki data (istilah bahasa inggrisnya Trap Error).
kali ini, penulis akan bahas cara penanganan error yang terjadi ketika macro tersebut berjalan, yang biasanya berupa tambahan MsgBox setelah MsgBox Macro dijalankan, lalu Access juga akan menampilkan Message "The OpenReport action was canceled." seperti dibawah ini :

Berikut adalah cara agar Pesan diatas tidak ditampilkan.
Sebelumnya jika anda membuat Command Button menggunakan Wizard, lalu memilih Print Report, maka Code dari Command button anda akan seperti dibawah ini :
Private Sub cmdPrintReport_Click()
On Error GoTo Err_cmdPrintReport_Click

    Dim stDocName As String

    stDocName = "rptBulanan"
    DoCmd.OpenReport stDocName, acNormal

Exit_cmdPrintReport_Click:
    Exit Sub

Err_cmdPrintReport_Click:
    MsgBox Err.Description
    Resume Exit_cmdPrintReport_Click
   
End Sub

Untuk menghentikan Access menampilkan pesan "The OpenReport action was canceled.", salah satu caranya adalah anda harus mengetahui nomor dari Error Code tersebut, yang dalam hal ini adalah 2501, lalu menambahkan sedikit code pada bagian Error Handler dari code aslinya, agar ketika error yang terjadi adalah error dengan nomor 2501, maka akan dilakukan hal yang kita inginkan. Misalnya kita ingin agar pesan "The OpenReport action was canceled." tidak tampil, maka kita bisa gunakan, Resume Next, atau Exit Sub, atau yang lainnya. contoh modifikasi codenya adalah sebagai berikut :
- Menggunakan Resume Next :
......
Err_cmdPrintReport_Click:
    If Err.Number = 2501 Then
    Resume Next
    Else
    MsgBox Err.Description
    Resume Exit_cmdPrintReport_Click
    End If
End Sub
- Menggunakan Exit Sub :
......
Err_cmdPrintReport_Click:
    If Err.Number = 2501 Then
    Exit Sub
    Else
    MsgBox Err.Description
    Resume Exit_cmdPrintReport_Click
    End If
End Sub
Sehingga codenya akan menjadi seperti ini :
- Menggunakan Resume Next :
Private Sub cmdPrintReport_Click()
On Error GoTo Err_cmdPrintReport_Click

    Dim stDocName As String

    stDocName = "rptBulanan"
    DoCmd.OpenReport stDocName, acNormal

Exit_cmdPrintReport_Click:
    Exit Sub

Err_cmdPrintReport_Click:
    If Err.Number = 2501 Then
    Resume Next
    Else
    MsgBox Err.Description
    Resume Exit_cmdPrintReport_Click
    End If
End Sub
- Menggunakan Exit Sub :
Private Sub cmdPrintReport_Click()
On Error GoTo Err_cmdPrintReport_Click

    Dim stDocName As String

    stDocName = "rptBulanan"
    DoCmd.OpenReport stDocName, acNormal

Exit_cmdPrintReport_Click:
    Exit Sub

Err_cmdPrintReport_Click:
    If Err.Number = 2501 Then
    Exit Sub
    Else
    MsgBox Err.Description
    Resume Exit_cmdPrintReport_Click
    End If
End Sub
Anda juga bisa menggunakan fungsi Select Case dari Err Number untuk menangani masalah error diatas atau error lainnya.

Semoga Bermanfaat...

2 comments:

miaw mpus mengatakan...

nice info.. oh yah dah aku follow blognya jangan lupa follback yah http://gado-gado-ajjah.blogspot.com/

Gie Satria mengatakan...

ty, ok siap laksanakan :)

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