Senin, 26 Maret 2012

Re: [belajar-access] Kecepatan Query dan Hidden Tables

 

Pak Sofyan...trim's berat atas sharing dari pak Sofyan yang padat dan dapat kami tangkap dengan baik mengenai management database multiuser.

Untuk manage database to SQL Server akan kami coba bicarakan lebih lanjut dgn management, cuman kayaknya dari beberapa pembicaraan mereka lebih prefer ke MySQL (sekalian tanya, adakah buku or referensi yang bagus untuk kolaborasi MS Access dgn MySQL, hehehehe...denger2 MBA dan Bang Haer mau nerbitin yah....tak tunggu bukunya Bang Haer....heheheheh)

Btw untuk case yang ke-2 sudah saya tambahkan on error resume next, tetapi pesan masih muncul tuh pak Sofyan, mohon solusi/bocoran script selain yang kami gunakan (yang pak Sofyan pake) untuk hidden table dgn tujuan menghindari juru intip database.

Demikian dan terima kasih atas saran dan solusinya.

Salam,
HerDja

2012/3/27 Sofyan Efendi <sofyanefendi@gmail.com>
 

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 next
    For i = 1 To CurrentDb.TableDefs.Count
        CurrentDb.TableDefs(CurrentDb.TableDefs(i - 1).Name).Attributes = 2
    Next
    CurrentDb.TableDefs.Refresh
End Function
 
Alternatif lainnya, cukup table-table tertentu saja yang di hide.
 
Wassalaamu'alaikum Warahmatullahi Wabarakatuh,
Sofyan Efendi.

----- Original Message -----
Sent: Tuesday, March 27, 2012 10:34 AM
Subject: Re: [belajar-access] Kecepatan Query dan Hidden Tables

Thank'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.OpenQuery

Salam 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.

Regards
Hendra


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.Count
        CurrentDb.TableDefs(CurrentDb.TableDefs(i - 1).Name).Attributes = 2
    Next
    CurrentDb.TableDefs.Refresh
   
End Function

Sebagai 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




__._,_.___
Recent Activity:
SPAM IS PROHIBITED
.

__,_._,___

Tidak ada komentar:

Posting Komentar