Dear Arif,

Ok, saya akan coba memberikan sedikit tips bagi anda, agar performance 
applikasi anda dapat berjalan secara optimal:

1. Anda sudah benar dengan menambahkan transaction dalam eksekusi query namun 
sayang penggunaannya masih sedikit keliru, sehingga menjadi tidak bermanfaat, 
alih2 malah justru membebani engine database anda, sebaiknya gunakan error 
handling untuk merespon applikasi tersebut, sehingga kita bisa menangkap error 
yang terjadi dan melakukan rollback transaksi databasenya.

cn.BeginTrans

On Error GoTo ErrHandling
...
cn.CommitTrans
...
ErrHandling:
If Err.Number <> 0 Then
    cn.RollbackTrans
    MsgBox Err.Number & "   " & Err.Description
End If

2. berikan informasi yang lengkap dan jelas pada query anda agar engine 
database dapat bekerja secara optimal. spesifikasikan field yang akan di insert 
dan di select.

INSERT INTO temp(field1,field2,field3) SELECT 
master.field1,master.field2,master.field3 FROM master WHERE namabulan = '" & 
CboBulan.Text & "' AND tahun = '" & CboTahun & "'") 


Ok semoga sedikit tips dari saya dapat membantu performance applikasi anda.

Correct Me If I Was Wrong (CMIIWW)
Best Regard,


Aiska Hendra
------------
Newbie Programmer


--- In [email protected], arif ipul <arifaquar...@...> wrote:
>
> Dear Suhu VB...
> mohon pencerahannya menganai coding berikut ini...
> sy punya masalah mengenai proses queri yg beigtu lama...  ini query mindahkan 
> data dari tabel master ke tabel temp.
> 
> Private Sub XPButton1_Click()
>    Dim rs As New ADODB.Recordset
>    Dim lokasi_db As String
>    Dim cn As New ADODB.Connection
>    lokasi_db = "d:\Hardiskoe\Trans Adpel\transaksi.mdb"
>    Set cn = New ADODB.Connection
>    cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & 
> lokasi_db & ";Persist Security Info=False"
>    cn.Open
>    
>    cn.BeginTrans
>    Set rs = cn.Execute(" DELETE * FROM temp")
>    cn.CommitTrans
>    
>    cn.BeginTrans
>    Set rs = cn.Execute(" INSERT INTO temp SELECT master.* FROM master WHERE 
> namabulan = '" & CboBulan.Text & "' AND tahun = '" & CboTahun & "'") 
>    cn.CommitTrans
>    
>    Load FrmRekapitulasi
>    FrmRekapitulasi.Show
>    Unload Me
> End Sub
> 
> 
> ini listing pada FrmRekapitulasi
> 
> Private Sub Form_Activate()
> Dim Rpt As Report
> Dim crApp As New CRAXDDRT.Application
> Set Rpt = crApp.OpenReport("d:\Hardiskoe\Trans Adpel\rekap.rpt")
> Rpt.EnableParameterPrompting = False
> With FrmRekapitulasi
> .Show
> .CrvRekap.ReportSource = Rpt
> .Caption = "Cetak Laporan Rekapitulasi Penerimaan"
> .CrvRekap.ViewReport
> .CrvRekap.Height = 10500
> .CrvRekap.Width = 15000
> .CrvRekap.Zoom 170
> End With
> End Sub
> 
> Pertannyaan saya adalah mengapa pada saat menampilkan report pada 
> FrmRekapitulasi begitu lama (skitar 5-10 menit baru bisa tampil), setelah 
> saya cek di tadabase pada menit2 pertama ternyata belum ada data yang masuk d 
> tabel temp.  kira2 masalahnya terletak pada bagian mana? 
> 
> sekedar info, sy menggunakan dabase accses..
> 
> 
> mohon pencerahannya...
>


Kirim email ke