
Dalam setiap
project Visual Basic saya yang bersentuhan dengan
database object, saya sering memeriksa apakah data yang akan saya tulis atau baca sudah ada di dalam database. Memang ada beberapa teman-teman sesama programmer saya yang sedikit tidak setuju dengan cara saya ini, hal ini di karenakan setiap saya memeriksa record yang ada, tentu saya akan menggunakan tambahan bandwith dalam operasi saya, juga akan ‘nambah-nambahi’ pembuatan
function saja.
Ada beberapa event yang membuat saya menggunakan pemeriksaan ini, biasanya adalah dalam event
Save dan baca record. Jika saya akan save, sebuah record dengan unique id, saya akan memeriksa apakah unique id ini sudah ada di database atau belum, jika sudah ada tentu saya akan ‘melempar’ hasilnya menjadi sebuah message box dan jika belum ada, akan saya teruskan
procedure penyimpanannya. Untuk event baca record juga begitu, jika record dengan unique id yang saya maksud tidak ada maka saya akan memberitahu user dan jika ada maka
procedure baca akan di teruskan.
Dan saya selalu membuat satu
Public Function untuk ini, jadi saya tinggal memanggilnya dimana pun saya berada di
project tersebut, function tersebut saya taruh di satu
module. Function ini bertipe Boolean, jadi dalam penggunaannya nanti akan memudahkan saya, tinggal saya mengecek apakah hasilnya
true atau
false. Dan berikut function yang saya namakan Function apakah ada.
Public Function apakah_ada(ByVal sTable As String, ByVal sField As String, ByVal sStr As String, Optional isNum As Boolean) As Boolean
Dim rs_apa_ada As New ADODB.Recordset
On Error GoTo apakah_ada_Error
With rs_apa_ada
.CursorLocation = adUseClient
If isNum = True Then
.Open "SELECT * FROM " & sTable & " WHERE " & sField & " = " & sStr, myconn, adOpenStatic, adLockReadOnly
Else
.Open "SELECT * FROM " & sTable & " WHERE " & sField & " = '" & sStr & "'", myconn, adOpenStatic, adLockReadOnly
End If
If .RecordCount <= 0 Then
apakah_ada = False
Else
apakah_ada = True
End If
.Close
End With
Set rs_apa_ada = Nothing
'___________________________________________________________
On Error GoTo 0
Exit Function
apakah_ada_Error:
MsgBox "Ada Kesalahan ! " & vbCrLf & "Nomor Kesalahan : " & Err.Number & vbCrLf & "Deskripsi : " & Err.Description & vbCrLf & "Di prosedur apakah_ada dalam modul mdlfungsi_aplikasi"
End Function
Misal saya akan memeriksa apakah kode barang yang akan saya masukan sudah ada, maka untuk penggunaan function ini adalah sebagai berikut:
'/cek apakah ada ada kode barang yang dimasukkan
If apakah_ada("tbl_data_induk_barang", "kode_barang", kode_barang, False) = False Then MsgBox "Kode barang: " & kode_barang & " tidak ditemukan!", vbExclamation, "Tidak Ditemukan": Exit Sub
Semoga sedikit bermanfaat…