Dalam pengembangan aplikasi, “bahan-bahan” yang kita gunakan tentu disesuaikan dengan kebutuhan. Ketika dibutuhkan fleksibilitas dan kemudahan, kita tidak dapat menawarkan solusi server-based database karena instalasi yang terlalu rumit. Ketika pilihan jatuh pada Microsoft Access, beberapa hambatan tentu terjadi, terutama bagi yang tidak terlalu familiar dengan sintaks SQL milik Ms. Access.
Tulisan ini sekedar menjadi catatan bagi saya yang mungkin menggunakan Ms. Access lagi di masa yang akan datang. Kesulitan yang paling besar yang saya alami selain ketiadaan stored procedure yang memadai, juga pada sintaks SQL terkait manipulasi date (tanggal). Pada aplikasi yang menggunakan antarmuka selain milik Ms.Access sendiri, semisal menggunakan ADO, terdapat beberapa kesulitan. Di antaranya akan saya paparkan di bawah.
1. Standar penyimpanan data berformat Date/Time milik Ms. Access adalah Timestamp, alias tanggal dan jam sampai ke satuan detik. Bagi yang tidak memerlukan informasi jam, dapat memberi format dd/mm/yyyy (standar format tanggal Indonesia) di kolom Format pada tampilan Design View field yang bersangkutan. Hal ini akan menyebabkan Ms.Access memotong informasi yang masuk sesuai dengan format yang telah dicantumkan.
2. Query Exact Date. Query ini memiliki bentuk sebagai berikut:
SELECT [namafield] FROM [namatabel] WHERE [fieldtanggal] = 'dd/mm/yyyy'
Perhatikan bahwa format tanggal yang dibutuhkan menggunakan shortdateformat, sama seperti yang telah kita bahas pada poin (1).
Format tanggal yang sama juga digunakan pada Query INSERT maupun UPDATE.
3. Query Between Two Dates. Query ini memiliki bentuk sebagai berikut:
SELECT [namafield] FROM [namatabel] WHERE [fieldtanggal] BETWEEN #dd MMMM yyyy# AND #dd MMMM yyyy#
Perhatikan bahwa format tanggal untuk BETWEEN sedikit berbeda, yaitu berada di antara tagar (#) dan berformat longdateformat berbahasa Inggris. Misalnya Anda mengambil data pada rentang tanggal 1 Januari 2013 sampai dengan 31 Desember 2013, maka query yang diperlukan adalah sebagai berikut:
SELECT [namafield] FROM [namatabel] WHERE [fieldtanggal] BETWEEN #1 January 2013# AND #31 December 2013#
Be First to Comment