Hai Heru,
Dengan asumsi bahwa setiap sheet Excel adalah sebuah tabel (agar lebih
berkaidah database), maka jumlah query table dalam setiap sheet adalah 1
bijik.
Object query table memiliki 2 event, yaitu beforerefresh dan afterrefresh
Pada object worksheet yang berisi query table tersebut bisa diberi script
berikut :
1. deklarasi variabel query table dengan scope private yang disertai
pernyataan memiliki events
private withevents qtKu as querytable
2. prosedur dengan scope public untuk inisialisasi object querytable dalam
worksheet ke variabel qtKu (dideklarasikan di nomor 1)
** misal nama object worksheet dalam VBE [VB Project Explorer] yang
berisi query table adalah mySheet, dengan caption (nama di sheet tab)
adalah Query1 ***
public sub SetQT()
'Jika query table diletakkan sebagai object Excel table (atau
bernama ListObjects), maka gunakan :
'set qtKu = mySheet.listobjects(1).querytable
'jika query table tidak tinggal dalam object listobjects :
set qtku=mysheet.querytables(1)
end sub
3. prosedur event (scope pasti private) milik query table (misal event
AfterRefresh, untuk variabel qtKu
-> lihat combobox kiri di atas lembar script, pilih qtKu
-> lihat combobox kanan di atas lembar script, pilih AfterRefresh
-> isi blok prosedur event yang dibuatkan oleh VBA dengan script yang
dibutuhkan
misal :
*** saat selesai refresh (baik karena gagal atau berhasil), akan
ditulis waktu refresh dan status refresh di sebuah range diluar tabel
*** waktu refresh akan ditulis di range F1 yang pasti diluar area query
table
*** status refresh akan ditulis di range G1
>> penulisan status seperti ini tidak akan mengganggu user yang sedang
sibuk mengamati tabel yang di-refresh, sedang msgbox akan mengganggu fokus
user
*** bunyi script yang ditulis dalam blok prosedur event afterrefresh
tersebut adalah :
mysheet.range("f1").value=now
if success then
mysheet.range("g1").value ="Horeee... refresh-nya sukses"
else
mysheet.range("g1").value =":( hikhikhik... refresh-nya
gagal"
endif
4. Melakukan inisialisasi object query table disheet tersebut
*** misal dilakukan pada event workbook open (bisa di event worksheet
activate) ***
-> isi event workbook open dengan baris yang memanggil prosedur (scope
public) milik worksheet (private object) berupa : (nama object sheet adalah
mySheet)
mysheet.setqt
Wassalamu'alaikum Wr. Wb.
Kid.
2013/3/9 Heru Safrudin <[email protected]>
> Dear Master,
>
>
> Saya bikin query di excel dari external data access
> Saya suda set option Refresh every 30 minutes
> Udah jalan sih interval 30 menit pasti refresh, tapi kita gak tau kalo
> data telah terupdate
>
> Pertanyaanya adakah event prosedur yg bisa memberikan pesan ada update
> ketika query refresh dan data telah terupdate ? (seperti Msgbox ) ?
>
> --
> Terima kasih
>
> وَالسَّلَامُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
> Heru Safrudin
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> bergabung ke milis (subscribe), kirim mail kosong ke:
> [email protected]
>
> posting ke milis, kirimkan ke:
> [email protected]
>
> berkunjung ke web milis
> http://tech.groups.yahoo.com/group/belajar-excel/messages
>
> melihat file archive / mendownload lampiran
> http://www.mail-archive.com/[email protected]/
> atau (sejak 25-Apr-2011) bisa juga di :
> http://milis-belajar-excel.1048464.n5.nabble.com/
>
> menghubungi moderators & owners: [email protected]
>
> keluar dari membership milis (UnSubscribe):
> kirim mail kosong ke [email protected]
> ---------------------------------------------------------------------Yahoo!
> Groups Links
>
>
>
>