Skip to content Skip to sidebar Skip to footer

Error Number 20533 Unable to Open Database

Error: Unable to Open Database

Seusai package & deployment wizard, saatnya uji coba menginstal software yang sudah dibuat di PC/Laptop lainnya. Akan tetapi ketika membuka file report, misalnya: report1.rpt, ternyata masih terdapat Error yang ditunjukkan dengan Nomor Library Error: 20533 dengan pesan error berupa: Unable to open the database ..... atau, gagal membuka database. Ada apa gerangan?

Penulis blog vb6-blog.blogspot.com ini juga pernah mengalami hal demikian. Hingga saat ini, penulis masih menggunakan Visual Basic 6.0 Service Pack 6 dan Seagate Crystal Report 7.0 didalam rangkaian pembuatan software under windows yang dipesan oleh client kami. Akan tetapi, kompatibilitas, stabilitas dan tampilan tidak mau kalah dengan keturunannya yang "katanya" sudah semakin canggih.

Apa maksudnya dari 20533 dengan pesan Unable to open database?

20533 adalah nomor error library  dalam visual basic 6.0 dan pesan itu dapat diartikan bahwa: Sistem tidak berhasil/gagal membuka database dan menampilkan laporan report1.rpt.
Misalnya, script untuk menampilkan laporan itu sbb:

Private Sub cmdLaporan_Click()
On Error GoTo errDatabase
    With crCetak
        .Reset
        .DataFiles(0) = App.Path & "\jnePn.mdb"
        .ReportFileName = App.Path & "\client.rpt"
        .WindowTitle = " Laporan Data Induk Client"
        .RetrieveDataFiles
        .Destination = crptToWindow
        .WindowState = crptMaximized
        .Action = 1
        Exit Sub
    End With
Exit Sub
errDatabase:
If Err.Number = "20533" Then
        MsgBox "Cr7 is unable to find your database!", vbCritical, " App.path Error Detected"
        Exit Sub
Else
        MsgBox "Report File Not Found or Corrupted!", vbCritical, " Unknown Error"
        Exit Sub
End If
End Sub

Berdasarkan script diatas, tujuan utamanya adalah: Menampilkan laporan yang ada dalam file report: client.rpt dimana data laporan tersebut tersimpan di database jnePn.mdb. Dalam contoh itu, saya menggunakan app.path yang berarti:
  • File EXE (Executable Application) ada dalam folder A
  • File Database berupa jnePn.mdb juga berada dalam folder A
  • dan, file report client.rpt juga berada dalam folder A.
Sehingga, asumsi saya, app.path cukup untuk menghandle urusan penampilan laporan. Akan tetapi, ketika selesai package software dan menginstalnya di komputer si pemesan, muncullah error 20533 tersebut. Padahal semua file exe, database dan report sudah ada dalam folder yang sama dan ketiga file itu "ADA" di folder A tersebut. What's wrong???

Melihat kasus diatas, selidik punya selidik ternyata permasalahannya bukan terletak pada "Tidak berhasilnya membuka database" akan tetapi, Path/Alamat file database tidak dikenal oleh si file Crystal Report: client.rpt tadi .. oalaaah :D.
Mari kita lihat kasus tersebut dan bagaimana bisa terjadi!

Studi Kasus Error 20533

Pertama, file-file project tersimpan di drive D dengan folder bernama: MyProjects.
Kedua, target instalasi setelah package yaitu: C:\Program Files\STT-JNE\

Dalam kasus ini, pada saat merancang (coding) jelas semua terjadi didalam folder MyProjects termasuk file client.rpt. Dengan demikian, pada saat instalasi package, file client.rpt TIDAK MENGENAL path setelah instalasi yaitu di directory: C:\Program Files\STT-JNE\. Dengan kata lain, client.rpt hanya mengenal directory dimana ia dibuat yaitu di D:\MyProjects. Dan, Inilah yang membuatnya error sehingga memunculkan nomor library error 20533 tersebut. Ooooooo...... :p

Setelah browsing di Google, kami menemukan solusi berikut ini:
- Membuat blok script Function, contoh:

Public Function GetAppPath(byVal sPath As String)
GetAppPath = IIf(Right$(App.Path, 1) = "\", App.Path, App.Path & "\")
End Function

- Kemudian memanggil GetAppPath sbb:
......
GetAppPath("jnePn.mdb")
.....

- Ada juga (hampir sama) seperti berikut ini:

App.Path & IIf(Right$(App.Path, 1) <> "\", "\", "") & "jnePn.mdb"

Akan tetapi, setelah kode itu dipasang, eh ternyata .... masih error :(
Setelah diselidiki, ternyata blok script diatas bertujuan: Untuk menentukan Path "Sesungguhnya" dari sebuah file yang akan dipanggil. Yang jelas, ini jauh sekali bedanya dengan kasus kita. Karena pada kasus kita, Path database tersebut "Sudah tertanam dalam banget di file client.rpt".
Dengan kata lain, permasalahannya terletak di client.rpt pada saat desain laporan tersebut.
Setelah klik sana-sini di IDE crystal report 7 tersebut akhirnya kami menemukan Solusinya sbb:

  • Pada menu di IDE crystal report 7.0, klik menu [Database] dan pilihlah [Set Location...].
    .
    Error 20533 - Unable to Open Database 
  • Selanjutnya akan tampil dialog box "Set Location", lalu langsung saja click tombol [Same As Report] yang terjemahannya SAMA saja dengan: App.Path.
    Yah, ibaratnya, kalo di vb6 disebut: app.path dan kalo di crystal report 7.0 disebut Same As Report. Beda-beda dikit lah :v
    .
    Error 20533 - Unable to Open Database

     
Jadi, dengan settingan diatas, client.rpt atau file laporan rpt anda akan selalu bersifat App.Path. Gampang bukan? :D - Semoga bermanfaat dan juga lupa LIKE and Share.




Post a Comment for "Error Number 20533 Unable to Open Database"