Baca Juga
Saya pernah menulis artikel tentang hal ini sebelumnya di link [ini], tetapi setelah dicoba dengan database MySQL ternyata tidak dapat berjalan dengan baik, saya mendapatkan error seperti ini :
Mengapa?
Hal tersebut kemungkinan terjadi karena database MySQL tidak dapat menerima syntax SQL yang digunakan dalam Crystal Report. Yuph.. untuk Link antar tabel Crystal Report 8.5 menggunakan INNER JOIN yang lazim digunakan dalam Query database Microsoft Access, sementara MySQL tidak mengenal perintah INNER JOIN tersebut.
Cara Mengatasinya.
Karena permasalahan ada pada link antar tabel, dalam hal ini syntax SQL default yang digunakan Crystal Report 8.5, maka kita akan sedikit melakukan perubahan terhadap code SQL-nya.
Klik Menu--Database--Show SQL Query ...
Kemudian muncul jendela Show SQL Query, kita, melihat syntax aneh disana. he he he ...
Langkah selanjutnya adalah mengganti Syntax SQL diatas :
Misalnya code sebelumnya adalah seperti ini :
SELECT
jurnal1.`kode_rek`,
rekening_akun1.`nama_rek`
FROM
{ oj `jurnal` jurnal1 INNER JOIN `rekening_akun` rekening_akun1 ON
jurnal1.`kode_rek` = rekening_akun1.`kode_rek`}
Syntax berwarna merah diatas akan dapat berjalan pada database Access, tetapi tidak untuk MySQL, sehingga perlu diganti dengan syntax dibawah ini :
SELECT
jurnal1.`kode_rek`,
rekening_akun1.`nama_rek`
FROM
`jurnal` jurnal1, `rekening_akun` rekening_akun1 WHERE
jurnal1.`kode_rek` = rekening_akun1.`kode_rek`
Syntax Asli :
SELECT nama_tabel1.nama_field,nama_tabel2.nama_field FROM nama_tabel1 ,nama_tabel2 WHERE nama_tabel1.nama_field=nama_tabel2.nama_field
Bila sudah tekan tobol OK, jika langkah ini berhasil maka report akan dapat menampilkan data, jika tidak akan muncul pesan-pesan aneh he3x ... Kalau sudah jangan lupa di save ya. Selamat Mencoba, Semoga berjaya !!! :D
16 Tanggapan
makasii mas broo ...
tutorialnya bermanfaat banget .... ^_^
iya mas/mbak, terima kasih kunjungannya.
gambar kodoknya muncul mas.... dah minta makan tuh! hehehe
hahaha.. iya cak, kodok di dalam es batu.
makasih infonya.
Masih blm bisa , mungkin bisa kasih penjelasan lagi gan ... thansk
Gak bisanya kenapa mas? Error? kalau error keterangannya apa?
Aku dah coba pake syntax yg diatas tp tetap ga muncul report nya ,
Bisa kasih saya contoh syntaxnya?
Ok thank gan, aku dah pake yg biasa dg view ... Ngomong cah wonogiri toh , salam dari cah jatisrono
nggih mas, kulo tiang selogiri.. hehehe
Mas boleh nanya lg, setiap bikin file exe kenapa crystal report nya error terus ya
error e pripun mas ? :)
Mas mau nanya lg nie .. lg ngerjain permintaan kantor , report dg crytal report 8.5 database pake mysql contoh tbtujuan field nya Kota,tgl_pergi ... di report nya aku buat tujuan .. yg empunya minta bikin report perbulan dg tujuan tertentu tdk global ...
ini syntaq yg aku pake
Dim RS As New ADODB.Recordset
Dim Crystal As CRAXDRT.Application
Dim report As CRAXDRT.report
If Opt2.Value = vbChecked Then
If Combo1.Text = "" Then
MsgBox "Silahkan Pilih Salah Satu Bulan..", vbCritical, "++ Peringatan..."
Combo1.SetFocus
Exit Sub
End If
Call BukaDB
RS.Open "Select tbpenerbangan.negara from tbpenerbangan Where tbpenerbangan.negara='" & CboNegara.Text & "'", Conn, adOpenStatic, adLockOptimistic
LapPemberangkatan.CRPemberangkatan.DisplayBorder = False
LapPemberangkatan.CRPemberangkatan.DisplayTabs = False
LapPemberangkatan.CRPemberangkatan.EnableExportButton = True
LapPemberangkatan.CRPemberangkatan.EnableZoomControl = True
Set Crystal = New CRAXDRT.Application
Set report = Crystal.OpenReport(App.Path & "\rptpemberangkatan.rpt")
report.DiscardSavedData
report.FormulaFields(0) = "negara='" & CboNegara.Text & "'"
report.RecordSelectionFormula = "Month({tbpenerbangan.tgl_terbang})=" & Combo1.Text & " and Year({tbpenerbangan.tgl_terbang})=" & Year(DTPicker3.Value) & ""
report.Database.SetDataSource RS
LapPemberangkatan.CRPemberangkatan.ReportSource = report
LapPemberangkatan.CRPemberangkatan.ViewReport
LapPemberangkatan.CRPemberangkatan.Zoom 100
Do While LapPemberangkatan.CRPemberangkatan.IsBusy
DoEvents
Loop
RS.Close
LapPemberangkatan.Show
End If
Si empu nya minta dg kategori Negara + tgl berangkat .. klo pake syntaq yg diatas report hasil nya global
coba mas gunakan selection formula :), contohnya di sini : www.vbjadul.net/2010/08/selection-formula-pada-crystal-report.html
mas desain datareport dengan group header tapi pakai 2 table gimana ya?
koneksi yg saya gunakan pakai databases MySQL