MEMASTIKAN NUMBER TIDAK ERROR PADA SQL COMMAND
MEMASTIKAN NUMBER TIDAK ERROR PADA SQL COMMAND
Artikel ini membahas sebuah function buatan sendiri (UDF) untuk mengatasi error ketika menyimpan data angka dengan sql command.
Pada Access, jika urusan tarik dan simpan data ditangani oleh Access sendiri ("Access way"), maka no problem. Problem akan muncul jika urusan simpan data itu kita handle sendiri, misalnya dengan perintah SQL. 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).

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to Top