Skip to main content

Menggunakan Pass-Through Query di Access

Seperti diketahui, Access menyediakan berbagai tipe query yang bisa dipergunakan sesuai dengan fungsi dan tujuannya. Secara garis besar, Access membagi query menjadi dua tipe, query SELECT dan query ACTION.

Query SELECT, seperti diketahui adalah query yang digunakan untuk menampilkan data dari satu atau lebih tabel. Data dari tabel bisa merupakan data mentah, atau data yang merupakan hasil perhitungan dengan menggunaan fungsi SQL, pengelompokan (GROUP BY), atau menggunakan kriteria tertentu (WHERE) . Query SELECT biasa diawali dengan pernyataan SQL SELECT, misalnya SELECT [nama field 1], [nama field 2]... dst.

Query action biasa digunakan untuk menambah, mengedit atau merubah, dan menghapus record tertentu dalam tabel.  Query action biasanya diawali dengan pernyaataan berikut ini:

  • INSERT INTO [nama tabel]
  • UPDATE [nama tabel] ....
  • DROP .....
  • DELETE ....

Di luar dua garis besar tipe query di atas, masih ada query lain yang penerapannya merupakan gabungan dari query select dan query action. Query ini dinamakan pass-through. Nah, dari berbagai tipe query di atas, mungkin hanya pass-through query saja yang jarang dipergunakan untuk menyusun aplikasi database.

Di Access, query pass-through  dipergunakan untuk menjembatani bahasa SQL dari database lain di luar database Access yang sedang terbuka. Database Access yang sedang terbuka, dalam istilah VBA, biasa dinamakan Current database. Kita biasa memanggil database yang sedang terbuka ini dengan fungsi CurrentDb. Bila bekerja dengan server database seperti SQL Server, MySQL, PostgresSQL, dan Oracle, Access menggunakan query pass-through sebagai jembatan dalam memahami perintah SQL yang ada di database itu. Khusus untuk Access, bila database back-end terpisah dari front-end, kita juga menggunakan query pass-through. Query pass-through tidak memerlukan tabel yang linked ke Access. Jadi, tidak ada tabel apapun di objek Tabel dalam Navigation Pane.

Untuk menjalankan query pass-through, kita memerlukan ODBC. ODBC merupakan singkatan dari Open Database Connectivity, yang merupakan metode standard untuk berbagi data di antara program dan database. Supaya ODBC berfungsi, kita memerlukan driver yang bisa menterjemahkan komunikasi antara program (dalam hal ini Access) dan server database. Driver ini meminta kita untuk memasukkan connection string, ekspresi string (teks) yang digunakan untuk mengakses server database secara terprogram. 

Di Access, kita diberi kemudahaan untuk mengatur driver ODBC. Access menyediakan wizard, bagaimana menuliskan ODBC connection string sebagai cara untuk menjalankan berbagai macam perintah SQL database dalam query di Access. Untuk lebih jelasnya, kita dapat mengikuti contoh berikut ini.

Buatlah sebuah query dengan menggunakan Query Design (ribbon tab Create, lalu Query Design).

Saat Access menampilkan kotak dialog Show Table, tekan Close untuk membiarkan kotak Query By Example (QBE) kosong. Selanjutnya, ubah viewnya ke SQL View (ribbon tab Design, pilih SQL View di grup Results). Hasilnya seperti di bawah ini.

Selanjutnya, pada ribbon tab Design, grup Query Type, pilih Pass-Through. Lalu pada grup Show/Hide, pilih Property Sheet untuk menampilkan properti query pass-through yang sedang aktif. Lihat gambar di bawah ini. Ikuti langkah nomor 1-3.

Pada property ODBC Connect Str, tekan expression builder (lihat nomor 4 pada gambar di atas). Access menampilkan wizard untuk mengatur connection string dari pass-through query.

Pada kotak Select Data Source, tekan tombol New. Access menampilkan kotak dialog Create New Data Source. Pada contoh ini, kita menggunakan SQL Server. Jadi, pilih SQL Server Native Client 11.0 untuk penulisan sintaks SQL Server di Access. Selanjutnya, tekan Next.

Pada text box Type the name of the file data source...., ketikkan nama file baru, misalnya, PassThroughQry. Tekan Next untuk lanjut.


Klik Finish. Access menampilkan Create a New Data Source to SQL Server:


Pada "How do you want to describe the data source?" isikan deskripsi seperlunya.

Pada "Which SQL Server do you want to connect to?", pilih nama server yang diinginkan. Selanjutnya, tekan Next.

Pada kotak "How should SQL Server verify the authenticity of the login ID?",  pilih "With Integrated Windows Authentication", kosongkan saja, lalu tekan Next

Beri tanda centang pada "Change the default database to:", dan pilih database SQL Server yang diinginkan.

Tekan tombol Finish untuk mengakhiri.


Pada kotak ODBC Microsoft SQL Server Setup, tekan tombol Test Data Source.

Pastikan hasilnya "Test Completed Successfully", seperti gambar di bawah. Tekan OK.


Tekan OK lagi.

Tekan OK untuk menyimpan DSN name: PassThroughQry.

Bila ada pertanyaan "Save the password in the connection string?", tekan Yes untuk menyimpan.

Selanjutnya, pada properti ODBC Connect Str dari query, kita bisa melihat nilai connection string untuk query pass-through, seperti gambar di bawah ini:

Query pass-through siap untuk digunakan. Berikut ini adalah contoh query pass-through untuk mengakses data langsung dari SQL Server, menggunakan fungsi yang tersedia di SQL Server.

Gambar di atas adalah contoh sederhana pass-through yang memanggil fungsi getdate() dari SQL Server ke Access. Fungsi getdate() adalah fungsi bawaan SQL Server yang digunakan untuk menampilkan data tanggal di server. Dengan pernyaataan SQL SELECT getdate() di Access, kita bisa menampilkan hasilnya, seperti di kotak sebelah kanan.

Contoh query pass-through yang lebih kompleks dapat kita lihat di gambar bawah.

Kotak query di sebelah kiri adalah pernyataan query pass-through yang berisi perintah pembuatan procedure, dengan nama ProcedureName3, yaitu melalui pernyataan SQL CREATE.... Sedangkan kotak query sebelah kanan adalah hasil eksekusi kotak query sebelah kiri , yang menunjukkan bahwa ProcedureName3 berhasil dibuat dan disimpan di SQL Server. Ingat ya, di SQL Server, bukan di Access. Procedure ProcedureName3 berisi perintah SQL Server untuk membuat query rekursif (query hirarki) yang terdiri dari parent-child, berapa pun level hirarkinya.

Selanjutnya, pada gambar di bawah ini, kita mengeksekusi perintah query pass-through untuk menampilkan data dari ProcedureName3.

 
Perintah query pass-through pada kotak sebelah kiri sangat sederhana, hanya menuliskan Exec ProcedureName3 dan Access menampilkan hasil query dalam bentuk Datasheet View, seperti terlihat di kotak sebelah kanan.  

Dari beberapa contoh di atas, kita bisa melihat bahwa query pass-through membantu kita menyelesaikan masalah pengolahan data. Contohnya, query rekursif di atas. Query rekursif adalah query yang lumayan kompleks dan memerlukan pengulangan query dari level paling atas sampai level paling rinci. Dalam hal ini, Access tidak bisa melakukan query rekursif. Nah, untuk menyelesaikan query seperti ini, kita harus menuliskannya pernyataan query di SQL Server, bukan di Access, dan ini hanya bisa dilakukan menggunakan pass-through.


Comments

  1. Semangat.... Saya selalu mengikuti tutorial Anda.

    ReplyDelete

Post a Comment

Posting Terpopuler

Membuat Fungsi Untuk Menghitung Pajak Penghasilan PPh 21 di MS Access

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Form dan Subform Menggunakan Form Wizard