Misalnya pada form input data, user
mengentry data-data:
1. Kode Suplier
3. Alamat
4. Kota
5. Nomor Telepon
Pada form entry data Suplier ada 5 text box seperti pada gambar berikut:
Setelah data diisi kemudia tombol
Save di klik maka perintah sql akan dieksekusi. Event OnClick pada tombol Save
untuk menyimpan data ke tabel Suplier adalah sebagai berikut:
Private Sub cmdSave_Click()
Dim strSql As String
strSql = "INSERT INTO SUPLIER
" & _
"(KODE_SUPLIER,NAMA_SUPLIER,ALAMAT,KOTA,NOMOR_TELEPON)
" & _
"VALUES ('" &
Me.KODE_SUPLIER.Value & "','" & _
Me.NAMA_SUPLIER.Value &
"','" & Me.ALAMAT.Value & _
"','" & Me.KOTA.Value
& "','" & Me.NOMOR_TELEPON.Value & "');"
CurrentProject.Connection.Execute
strSql
End Sub
Jika data-data yang dientry oleh
user mengandung tanda petik tunggal (') misalnya suplier bernama AL-MA'SOEM
seperti pada gambar berikut:
Setelah user meng-klik tombol Save maka akan muncul pesan error seperti gambar
berikut:
Perintah SQL (query) megalami error jika dieksekusi karena adanya tanda petik tunggal pada data nama suplier sebagai berikut:
INSERT INTO SUPLIER ( KODE_SUPLIER,
NAMA_SUPLIER, ALAMAT, KOTA, NOMOR_TELEPON ) VALUES ('A001', 'AL-MA'SOEM', 'JL
GOLF NO 38', 'BANDUNG', '7838304');
Karena user mengisi nama suplier
mengandung tanda petik satu (') maka perintah SQL dianggap ada operator yang
tidak lengkap (missing operator).
Perintah SQL (query) yang benar
adalah:
INSERT INTO SUPLIER ( KODE_SUPLIER,
NAMA_SUPLIER, ALAMAT, KOTA, NOMOR_TELEPON ) VALUES ('A001', 'AL-MA''SOEM', 'JL
GOLF NO 38', 'BANDUNG', '7838304');
Untuk mencegah terjadinya error saat
mengeksekusi perintah sql atau query seperti kasus di atas, maka harus ada
fungsi untuk menambahkan karakter tanda petik satu (') pada nama suplier
AL-MA'SOEM menjadi AL-MA''SOEM.
Fungsi yang ini kita beri nama
SQLEncrypt(), berikut kode program lengkapnya:
Public Function SQLEncrypt(sText)
Dim sTemp
If Not IsNull(sText) Then sTemp =
Replace(sText, "'", "''")
SQLEncrypt = sTemp
End Function
Penjelasan fungsi SQLEncrypt
•Fungsi
menerima 1 buah parameter
•Jika
parameter ada isinya/tidak kosong maka akan dijalankan perintah Replace(sText,
"'", "''") untuk mengganti karakter ' menjadi ''
•Hasil
dikembalikan ke pemanggil fungsi
Untuk itu kita perlu menggnati
script program even OnClick pada tombol Save menjadi sebagai berikut:
Private Sub cmdSave_Click()
Dim strSql As String
strSql = "INSERT INTO SUPLIER
" & _
"(KODE_SUPLIER,NAMA_SUPLIER,ALAMAT,KOTA,NOMOR_TELEPON)
" & _
"VALUES ('" &
Me.KODE_SUPLIER.Value & "','" & _
SQLEncrypt(Me.NAMA_SUPLIER.Value)
& "','" & Me.ALAMAT.Value & _
"','" & Me.KOTA.Value
& "','" & Me.NOMOR_TELEPON.Value & "');"
CurrentProject.Connection.Execute
strSql
End Sub
Pada contoh file aplikasi access ini
ada dua buah form dengan nama Form1 dan Form2. Form1 adalah form yang tidak
menggunakan fungsi SQLEncrypt() sehingga akan mengalami error jika nama suplier
mengandung karakter petik tunggal, sedangkan Form2 sudah menggunakan fungsi
SQLEncrypt().
Selamat mencoba.