Skip to main content

Fungsi Untuk Menjalankan Delete Query di Access VBA

Meskipun fungsi jalankanActionQuery cukup memadai untuk menjalankan semua tipe action query, kita dapat membuat fungsi yang lebih spesifik untuk menjalankan action query tipe delete atau yang biasa disebut delete query ini. Seperti diketahui, delete query adalah tipe action query yang digunakan untuk menghapus record.

Secara umum, menghapus record mempunyai metode yang sama seperti yang dilakukan pada fungsi jalankanActionQuery. Perbedaannya hanya terletak pada parameter tertentu yang digunakan pada delete query. Untuk menghapus record dalam sebuah tabel, SQL statementnya adalah sebagai berikut:
"DELETE * FROM " & strNamaTabel & " WHERE " & strNamaField & "=" & varNilaiField
Gambar 1 Tombol Delete Query

Dengan demikian, fungsi untuk menghapus record yang dijalankan dengan menggunakan delete query adalah sebagai berikut:
Function jalankanDeleteQuery(strNamaTabel As String, strNamaField As String, varNilaiField As Variant)
' Parameter:
' strNamaTabel  = Ekspresi string mengacu pada nama tabel.
' strNamaField  = Ekspresi string mengacu pada nama field dalam tabel yang bernama strNamaTabel
' varNilaiField = Tipe data Variant untuk nilai dari field dengan nama strNamaField
'                 gunakan tanda kutip tunggal ('') untuk nilai yang berupa string, misal: 'Agus'
'                 gunakan tanda pagar (##) untuk nilai yang berupa tanggal, misalnya #1/1/2016#
On Error GoTo Err_Msg
  runActionQuery "DELETE * FROM " & strNamaTabel & _
              " WHERE " & strNamaField & "=" & varNilaiField
Exit_Function:
  Exit Function
Err_Msg:
  MsgBox "Function jalankanDeleteQuery, Error # " & str(Err.Number) & ", source: " & Err.Source & _
  Chr(13) & Err.description
  Resume Exit_Function
End Function
Fungsi jalankanDeleteQuery mempunya tiga parameter yang semuanya wajib diikutsertakan, yaitu:
  1. strNamaTabel, nama tabel yang di mana recordnya ingin dihapus. Tipe datanya berupa string.
  2. strNamaField, nama field yang ada pada tabel strNamaTabel. Tipe datanya berupa string. .
  3. varFieldValue, nilai dari field yang ada pada strNamaField.
Fungsi ini hanya dapat dijalankan bila ada sebuah database yang dibuka. Database yang dibuka dinyatakan dengan menggunakan fungsi membukaDbs. Dengan demikian, kita harus memastikan terlebih dulu bahwa fungsi membukaDbs telah dijalankan. Jadi, urutan eksekusi fungsinya adalah sebagai berikut:
  1. membukaDbs
  2. jalankanDeleteQuery
Dalam fungsi jalankanDeleteQuery, ada object daoDbs yang harus diatur dengan menggunakan fungsi membukaDbs. Jika daoDbs belum diatur, pesan kesalahan dengan tipe run-time error #91 ditampilkan, yang berarti nilai daoDbs belum diatur.

Implementasi:

 

Untuk mengeksekusi jalankanDeleteQuery, nilai dari varNilaiField harus mempunyai tipe yang sama dengan tipe data dari field strNamaField. Jadi misalnya, untuk sebuah field dengan tipe data text/string, varNilaiField harus diletakkan di antara tanda kutip tunggal (''), misalnya 'piutang dagang', 'Jakarta', 'Jl Sudirman', dan lain sebagainya. Untuk sebuah field dengan tipe data Date/Time, varNilaiField harus diletakkan di antara tanda kutip pagar (##), misalnya #10/31/2015#, #2/20/2017#, dan lain sebagainya. Jika tipe data dari nilai varNilaiField tidak sama dengan tipe dataa strNamaField, Access akan menampilkan kesalahan tipe data (data type mismatch error).
Gambar 2. Contoh fungsi delete query pada aplikasi back-end dan front-end
Contoh berikut ini digunakan untuk membuka database yang diatur dengan menjalankan fungsi membukaDbs. Setelah itu fungsi jalankanDeleteQuery digunakan untuk menghapus sebuah record pada tabel yang bernama tblRekUtama, dengan nama field kodeRek dan nilai field itu adalah '101'. Ingat, karena ada tanda kutip tunggal, berarti tipe data field kodeRek adalah text/string. Lihat contoh pada Gambar 2 di atas.
membukaDbs
jalankanDeleteQuery "tblRekUtama", "KodeRek", "'101'"
Contoh berikut ini membuka sebuah database yang bernama daoDbs yang diatur dengan menjalankan fungsi mebukaDbs. Setelah itu, fungsi jalankanDeleteQuery digunakan untuk menghapus sebuah record pada tabel yang bernama tblTempTransJournal_Parent dengan nama field JurnalId dan nilai field itu adalah 15 (nilainya bertipe long integer atau numerik).
membukaDbs
jalankanDeleteQuery "tblTempTransJournal_Parent", "JurnalId", "15"
Contoh berikut ini membuka sebuah database yang bernama daoDbs yang diatur dengan menjalankan fungsi mebukaDbs.  Setelah itu, fungsi jalankanDeleteQuery digunakan untuk menghapus sebuah record pada tabel yang bernama tblTempTransJournal_Parent dengan nama field TglTransaksi dan nilai field itu adalah #6/21/2014# (tipe data Date/Time) atau 21 Juni 2014.
membukaDbs
jalankanDeleteQuery "tblTempTransJournal_Parent", "TglTransaksi", "#6/21/2014#"

Comments

Posting Terpopuler

Format Untuk Field Dengan Tipe Data Number dan Currency di MS Access

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Fungsi Untuk Menghitung Pajak Penghasilan PPh 21 di MS Access