Ya Mas Hendra.. BE nya Access memang bukan yg memproses, karena saat sebagai BE, Access hanya berupa file tempat menyimpan data, bukan memproses data. Tapi untuk SQL Server, salah satu keunggulannya, dia dapat mengirimkan data sesuai yg kita ambil. Cukup jauh perbandingannya dalam hal kecepatan.
Adapun yg dimaksud Query lebih cepat dari VBA, yg dimaksud adalah penggunaan query nya menggunakan kode SQL secara langsung di VBA, bukan membandingan query dengan VBA. Misal:
DoCmd.RunSQL "UPDATE Finishing_Goods_DB INNER JOIN dbo_IMA ON Finishing_Goods_DB.ID_Article_MRP = dbo_IMA.IMA_ItemID SET Finishing_Goods_DB.ConversiUnitMeasure = [IMA_SalesConvUnitMeasure]" _
& "WHERE Finishing_Goods_DB.ConversiUnitMeasure Is Null;"
& "WHERE Finishing_Goods_DB.ConversiUnitMeasure Is Null;"
Diatas adalah salah satu contoh penggunaan query update di VBA. Padahal selain cara diatas, kita bisa juga buat query update di Access, kemudian dijalankan dengan perintah docmd.openquery "nama querynya".
Nah, yg dibandingkan, cepat mana antara DoCmd.RunSQL dengan docmd.openquery.
Wassalaamu'alaikum Warahmatullahi Wabarakatuh,
Sofyan Efendi.
Sofyan Efendi.
----- Original Message -----From: Hendra Agestha HamidSent: Tuesday, March 27, 2012 12:40 PMSubject: Re: [belajar-access] Kecepatan Query dan Hidden TablesMaaf Mas saya nimbrung,,,
Masalah pemrosesan data oleh Access ini salah satu issue Access yg paling saya tertarik, saya belum pernah mencoba langsung tapidari yg saya baca dan dulu pernah juga dibahas di Milis bahwa sebenarnya bukan BE nya yg membuat proses data oleh Accessseperti yg Mas jelaskan, apapun BE nya jika FE nya Access kecuali dgn metoda Pass Through Queries, maka seluruh data tetapakan ditarik ke PC user baru nanti disaring...sangat tidak efisien memang. Mas Aksan malah sudah memberi hasil eksperimennyatentang ini dan memang begitu cara kerja Access (kecuali pake Pass Through Queries), sayangnya PT Queries tidak bisa dipakaiutk BE Access.Tentang Query lebih cepat dari VBA yg saya mau tanyakan apakah berarti Query Access lebih cepat dari Visual Basic ? karenasetau saya VB tdk ada Query, semuanya harus lewat coding,,,dan kalo tdk salah juga sama2 pake JET Engine ya mas?Mohon penjelasannya Mas...RegardsHendra
From: Sofyan Efendi <sofyanefendi@gmail.com>
To: belajar-access@yahoogroups.com
Sent: Tuesday, March 27, 2012 11:27 AM
Subject: Re: [belajar-access] Kecepatan Query dan Hidden Tables
Dear Mas Heru, untuk aplikasi multi user, dengan backend database menggunakan Access via jaringan LAN, sementara ini belum ada cara untuk mempercepatnya. Aplikasi multi user disarankan menggunakan SQL Server. SQL Server sangat mengurangi penggunaan lalu lintas data jaringan / network, sebab ia dapat mengirimkan dan mengambil data sesuai yang diinginkan oleh user saja. Sebagai contoh, jika kita hendak mencari suatu data karyawan yang bernama "Sofyan" saja, maka SQL Server akan mengirimkan melalui network, data yang namanya "Sofyan" saja. Sedangkan pada Access, seluruh data karyawan akan dikirimkan dahulu ke PC user melalui network, kemudian baru di pilih yang bernama "Sofyan" di PC usernya. Bisa dibayangkan jika data karyawan kita ada 1,000,000 record, maka akan sangat lama sekali jika menggunakan Access.Untuk Docmd.OpenQuery VS DoCmd.RunSQL , bila yg dibandingkan kecepatan, maka lebih cepat Docmd.OpenQuery. Sebab Access sudah meng-compile object query saat kita save query tsb. Adapun kode SQL di VBA berada dalam string petik dua, sehingga ketika dijalankan, Access akan mencheck dulu apakah kode SQL tsb error atau tidak, barulah query tersebut dijalankan.Untuk Hide All Tables, sepertinya ada table system yang ikut terbawa, karena Mas Heru menggunakan perintah For i = 1 To CurrentDb.TableDefs.Count. Coba tambahkan on error resume next bila memang ingin tetap menggunakan perintah tsb.Function HideAllTables()on error resume nextFor i = 1 To CurrentDb.TableDefs.CountCurrentDb.TableDefs(CurrentDb.TableDefs(i - 1).Name).Attributes = 2NextCurrentDb.TableDefs.RefreshEnd FunctionAlternatif lainnya, cukup table-table tertentu saja yang di hide.Wassalaamu'alaikum Warahmatullahi Wabarakatuh,
Sofyan Efendi.----- Original Message -----From: Heru WibowoSent: Tuesday, March 27, 2012 10:34 AMSubject: Re: [belajar-access] Kecepatan Query dan Hidden TablesThank's atas sarannya, sudah saya coba tetapi masih lambat mas.BTW...sudahkan ada yang pernah mencoba bila record sudah banyak, untuk query sbb :Docmd.OpenQuery VS DoCmd.RunSQL lebih cepetan mana yah dalam eksekusinya dan apa plus minusnya ?dan case yang ke-2 (hidden table) gmana yah ?hehehe.... sepertinya para suhu dan master access sedang pada sibuk nieh, udah jarang denger lagi MBA kasir solusi.....heheheheh...note :email sebelumnya tertulis "metode yang sementara dipakai adalah Docmd. Runquery" --> revisi menjadi Docmd.OpenQuerySalam anget dan jabat kenceng,(hehehe...biar MBA bisa ketawa...)....Sory Bang....b'canda....Salam,HerDja
2012/3/27 Hendra Agestha Hamid <the_agestha@yahoo.com>
Ini saya coba copas dari obrolan saya dengan Mas Toni "Covey", barusan kok , mungkin bisa dicoba :Saya juga lebih suka pakai Unbound Form, alasannya sama seperti Kang Adi utarakan, cuma yang biasa saya lakukan untuk
insert / update datanya di "On Click" tombol "Simpan" pakai Coding :
Private Sub cmdSimpan_Click()
Dim dbs As Database
Dim rst As Recordset
'Buka Tabel yang akan diupdate
Set dbs = DBEngine.Workspaces(0).OpenDatabase(LokasiDataMDB & FileMDB)
Set rst = dbs.OpenRecordset(TabelTujuan, dbOpenTable)
rst.AddNew 'Untuk tambah data
<Atau>
rst.Edit 'Untuk Update data
<Update Data ke Record>
rst.Update
rst.close
dbs.close
set dbs = Nothing
set rst = Nothing
End Sub
Dengan cara ini proses jauh lebih cepat, walaupun jaringan lagi lelet.
Semoga bermanfaat.RegardsHendra
From: Heru Wibowo <heru.wibowo4456@gmail.com>
To: Belajar Access <belajar-access@yahoogroups.com>
Sent: Monday, March 26, 2012 10:25 AM
Subject: [belajar-access] Kecepatan Query dan Hidden Tables
Salam sejahtera,Dear para suhu access....mohon bantuan info dan solusi sebagai berikut :Database full access 2010 ( FE dan BE) dengan data baru mencapai 10ribuan record (bekerja dalam jaringan LAN dengan 8 user), case :1. Manipulating data lambat (insert, update, delete record), dengan metode query seperti apakah supaya proses manipulating data dapat berjalan cepat (baca minimal normal) ?metode yang sementara dipakai adalah Docmd. Runquery...2. Ketika database dibuat Hidden table (very hidden) selalu muncul windows konfirmasi "Cannot update. Database or object is read-only", pada waktu open atau exit application, metode hidden tables menggunakan metode :Function HideAllTables()For i = 1 To CurrentDb.TableDefs.CountCurrentDb.TableDefs(CurrentDb.TableDefs(i - 1).Name).Attributes = 2NextCurrentDb.TableDefs.RefreshEnd FunctionSebagai perbandingan, sewaktu menggunakan Ms Access 2003 hal ini tidak dijumpai, apakah ada metode lain u/ hidden table agar tidak dapat diintip di ms Excel selain dengan metode hidden table menggunaan metode diatas ?sebab jika Attributes saya ganti dengan angka 1 windows konfirmasi tidak muncul, tetapi table dapat diintip dengan ms excel.Demikian hal ini disampaikan.Atas solusi dari para master dan suhu diucapkan terima kasih.Salam,HerDja
__._,_.___
SPAM IS PROHIBITED
.
__,_._,___
Tidak ada komentar:
Posting Komentar