Hai Totong,
Benar adanya bahwa ada perubahan besar yang dilakukan oleh Excel dari
xl2003 ke xl2007 dan seterusnya.
Koneksi data di xl2003 akan membentuk object querytable atau pivottable
dengan object connection yang menempel di dalamnya. Object querytable ini
ditampilkan seperti area range biasa.
Koneksi data di xl2007 ke atas akan membentuk object connections terlebih
dulu kemudian membentuk excel table yang disebut ListObject atau pivot
table. Object querytable ini ditampilkan atau akan menjadi member (anak)
dari object excel table alias listobjects. Pada xl2007 ke atas, refresh
data bisa dilakukan terhadap object connections-nya atau pada object output
koneksi datanya (seperti listobjects atau pivot table)
Beberapa cara refresh hasil koneksi data dengan VBA :
1. pada xl2003
> *sheets("nama sheet lokasi hasil query
table").querytables(indeks_query_table).refresh*
** contoh hasil koneksi data berupa querytable pertama di sheet bernama
'hasil' yang diletakkan di cell A1
sheets("hasil").querytables(1).refresh
> *sheets("nama sheet lokasi hasil query table").range("alamat sebuah cell
dalam tabel hasil query").querytable.refresh*
** contoh hasil koneksi data berupa querytable pertama di sheet bernama
'hasil' yang diletakkan di cell A1
sheets("hasil").range("a1").querytable.refresh
2. pada xl2007 ke atas
> *sheets("nama sheet lokasi hasil query
table").listobjects(indeks_atau_string_nama_objects).querytable.refresh*
** contoh hasil koneksi data berupa querytable pertama di sheet bernama
'hasil' yang diletakkan di cell A1 dengan object excel table (alias
listobjects) pertama yang diberi nama '_myTable_'
sheets("hasil").listobjects(1).querytable.refresh
atau
sheets("hasil").listobjects("_myTable_").querytable.refresh
> *sheets("nama sheet lokasi hasil query table").range("alamat sebuah cell
dalam tabel hasil query").listobject.querytable.refresh*
** contoh hasil koneksi data berupa querytable pertama di sheet bernama
'hasil' yang diletakkan di cell A1 dengan object excel table (alias
listobjects) pertama yang diberi nama '_myTable_'
sheets("hasil").range("a1").listobject.querytable.refresh 'di range a1
ada listobject hasil query table, tulung di-refresh
>
*menggunakan object connections *
* thisworkbook.connections(indeks_atau_string_nama_koneksi).refresh*
** contoh hasil koneksi data pertama dengan koneksi yang diberi nama
'_myConnection_' dan tidak tahu outputnya sebagai excel table atau pivot
table di sheet mana.
thisworkbook.connections(1).refresh
atau
thisworkbook.connections("_myConnection_").refresh
Wassalam,
Kid.
2015-02-25 0:01 GMT+11:00 'Totong Sutiana' [email protected]
[belajar-excel] <[email protected]>:
>
>
> Dear para Master Excel
>
>
>
> Semangat belajar VBA,
>
> Biasa nya saya menggunakan format table yang dibuat dari excel2003 untuk
> koneksi tabel ke Sql server atau file lain.
>
> Saya coba menggunakan query table dengan format excel2007 ke atas tapi
> dari vba nya tidak bisa diperlakukan seperti ditabel excel 2003.
>
> Contoh di file attach. Menggunakan excel2003 klick refresh tidak masalah
> tapi dengan excel 2007 ke atas “Subscript Out of Range”
>
> Metode seperti apa seharusnya untuk excel 2007?
>
> Tujuannya digunakan untuk ambil data dari sql server satu koneksi beberapa
> tabel ke beberapa sheet dengan parameter yang sama melalui command text dan
> refresh sekaligus.
>
> Contoh;
>
> Tabel jual à sheet jual parameter: 2015
>
> Tabel Beli à sheet Beli Parameter: 2015
>
>
>
> Salam
>
> totong
>
>
>