Salah satu problem adalah ketika kita menyimpan (insert) angka ke dalam field, padahal angka ada juga yang mengandung nilai desimal, atau tidak mengandung nilai angka alias bernilai Null.
Angka yang mengandung desimal bisa jadi problem karena angka tersebut akan dikonversi menjadi string, termasuk tanda desimalnya. Pada Regional Setting Windows yang menggunakan Format Indonesian, tanda desimal adalah koma (,). Tanda koma ini sama dengan tanda pemisah list pada perintah SQL. Tentu saja string perintah SQL-nya akan menjadi salah!
Berikut ini adalah sebuah function untuk memastikan string dari angka selalu kompatibel dengan perintah SQL, yaitu mengubah tanda koma (tanda desimal) menjadi tanda titik. Function ini pun sekaligus memberikan teks Null pada nilai Null sehingga tidak menjadi kosong.
Public Function NC(ByVal pNumber)
If IsNull(pNumber) Then
NC = "Null"
ElseIf InStr(pNumber, ",") Then
NC = Replace(pNumber, ",", ".")
Else
NC = pNumber
End If
End Function
Simpan function di atas pada sebuah modul umum (General Module atau Standard Module).
Cara pakainya seperti ini:
tSql = "UPDATE tbl_Penjualan_dtl SET Diskon_1=" & NC(tDiskon2) & " WHERE (" & whr & ")"
DoCmd.RunSql tSql
Pada perintah SQL di atas, variabel tDiskon2 mungkin saja mengandung nilai desimal atau tidak mengandung nilai angka alias bernilai Null. Dengan function NC kita tidak perlu ragu lagi dengan format nilai pada variabel tersebut.
Demikian cara sederhana ini, semoga bermanfaat.
(Jangan lupa beri komen ya biar posting ini lebih populer di mesin pencari, thanks).
5 komentar:
terima kasih.
Mantap,
trik dari the Master.
terima kasih bang
Sip
Jazakallah Khairan Bang...
sami-sami, semoga manfaat yah.
in syaa Allah kalau ada case lagi yg perlu ditaruh di sini, akan saya tuliskan.
Posting Komentar