Skip to main content

Fungsi Untuk Menampilkan Nilai Field Dengan Primary Key Tertentu

Pada berbagai macam query, kita pasti menemukan pernyataan SQL SELECT yang sangat umum. Pernyataan SELECT pada SQL digunakan untuk menampilkan nilai satu atau lebih field dalam sebuah tabel. Supaya nilai field yang ditampilkan sesuai dengan keingin, kita bisa menyaring pernyataan SELECT dengan kriteria tertentu.
Gambar 1. Menampilkan nilai field secara umum

Dengan menggunakan VBA di Access, kita dapat membuat fungsi yang digunakan untuk menampilkan nilai field berdasarkan nilai dari primary key. Berikut ini fungsinya.
  1. Function menampilkanNilaiField(strNamaField As String, strNamaSumber As String, _  
  2.                        strPrimaryKeyField As String, strNilaiPrimaryKey As Variant, _  
  3.                        Optional intOprSign As enumOperator = oprEqual) As String  
  4. 'parameter:  
  5. 'strNamaField         : Nama field yang nilainya ingin ditampilkan  
  6. 'strNamaSumber        : Nama tabel/query dari strNamaField  
  7. 'strPrimaryKeyField   : Field Primary Key dalam tabel strNamaSumber  
  8. 'strNilaiPrimaryKey   : Nilai string dari Field Primary Key  
  9. 'intSimbolOperator    : Simbol operator  
  10.   Dim rs As DAO.Recordset  
  11. On Error GoTo Err_Msg  
  12.   Dim strCriteria As String  
  13.   strCriteria = membuatKriteriaString(strPrimaryKeyField, strNamaSumber, strNilaiPrimaryKey, , intSimbolOperator)  
  14.   If strNilaiPrimaryKey <> vbNullString Then  
  15.     Set rs = membukaRecordset("SELECT " & strNamaField & " FROM " & strNamaSumber & _  
  16.             " WHERE " & strCriteria)  
  17. ' Gunakan pernyataan If berikut ini  
  18. '    If rs.RecordCount > 0 Then menampilkanNilaiField = Nz(rs.Fields(0).Value, "")  
  19. ' atau yang ini  
  20.     If (Not (rs.BOF And rs.EOF)) Then menampilkanNilaiField = Nz(rs.Fields(0).Value, ""'statement ini digunakan untuk menghindari error berupa data yang blank (Error 3021).  
  21.   Else  
  22.     menampilkanNilaiField = vbNullString  
  23.   End If  
  24. Exit_Function:  
  25.   rs.Close  
  26.   Set rs = Nothing  
  27.   Exit Function  
  28. Err_Msg:  
  29.   MsgBox "Function menampilkanNilaiField, Error # " & str(Err.Number) & ", source: " & Err.Source & _  
  30.   Chr(13) & Err.Description  
  31.   Resume Exit_Function  
  32. End Function  
Ada empat parameter yang wajib diisi dan satu yang sifatnya opsional:
  1. strNamaField, merupakan nama field yang nilainya ingin ditampilkan, sifatnya wajib
  2. strNamaSumber, merupakan nama tabel dari strNamaField, sifatnya wajib
  3. strPrimaryKeyField, merupakan nama field primary Key dalam tabel strNamaSumber, sifatnya wajib
  4. strNilaiPrimaryKey, merupakan nilai data dari strPrimaryKeyField, sifatnya wajib
  5. intSimbolOperator, merupakan operator string, sifatnya opsional, dengan nilai default 0
Untuk menjalankan fungsi di atas, maka ada beberapa fungsi yang sudah harus tersedia di modul Access. Fungsi itu adalah:
  • membukaDbs, yang digunakan untuk memastikan bahwa database sudah dalam posisi untuk dibuka dan diolah.
  • membukaRecordset, digunakan untuk membuka recordset dari sebuah tabel strNamaSumber.
  • membuatKriteriaString, yang digunakan untuk menuliskan string kriteria di pernyataan SQL.
Fungsi menampilkanNilaiField di atas masih bersifat umum. Kita bisa membuatnya menjadi lebih sederhana dan lebih spesifik untuk digunakan pada setiap modul yang berkaitan dengan tabel terntentu. Untuk itu, kita harus membuat fungsi baru yang dapat diaplikasikan ke tabel tertentu itu. Contohnya seperti fungsi berikut ini.
  1. Function cariNamaRekening(strPrimaryKey As StringAs Variant  
  2.   Const strNamaTabelSumber As String = "tblRekUtama"  
  3.   Const strNamaFieldPrimary As String = "KodeRek"  
  4.   cariNamaRekening = menampilkanNilaiField("NamaRek", strNamaTabelSumber, strNamaFieldPrimary, strPrimaryKey)  
  5. End Function  
Bila ingin mengaplikasi lebih luas, maka kedua konstanta pada fungsi di atas, strNamaTabelSumber dan strNamaFieldPrimary, bisa dipindahkan ke bagian atas dari deklarasi sebuah modul tertentu.
Gambar 2. Fungsi untu menampilkan nilai field dibuat spesifik sesuai dengan kegiatan
Misalnya ada modul yang berkaitan dengan aktivas kode rekening di tabel tblRekUtama, maka kita bisa memindahkan kedua konstanta itu ke atas menjadi Private Const dan parameter/variabel strNamaField dideklarasikan di dalam fungsi seperti berikut ini.
  1. Private Const strNamaTabelSumber As String = "tblRekUtama"  
  2. Private Const strNamaFieldPrimary As String = "KodeRek"  
  3.   
  4. Function cariNamaRekening(strPrimaryKey As StringAs Variant  
  5.   Dim strNamaField As String  
  6.   strNamaField = "NamaRek"  
  7.   cariNamaRekening = menampilkanNilaiField(strNamaField, strNamaTabelSumber, strNamaFieldPrimary, strPrimaryKey)  
  8. End Function  
  9. Function cariGrupRekening(strPrimaryKey As StringAs Variant  
  10.   Dim strNamaField As String  
  11.   strNamaField = "NamaRek"  
  12.   cariGrupRekening = menampilkanNilaiField("Grup", strNamaTabelSumber, strNamaFieldPrimary, strPrimaryKey)   
  13. End Function  
Dengan menempatkan konstanta ke bagian atas deklarasi sebuah modul, program menjadi lebih simpel dan terlihat sistematis. Contoh eksekusi fungsi dapat dilihat di Gambar 2 di atas. Pada gambar 2, fungsi yang ada di Immediate Window tampak sederhana, kita hanya menuliskan cariNamaRekening("111") untuk mengetahui nama rekening yang memiliki kode 111 (Bank Lippo). Demikian pula untuk contoh di bawahnya, semua tampak sederhana.

Comments

Posting Terpopuler

Cara Mengatur dan Menggunakan ODBC untuk Mengakses Data Eksternal

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

Fungsi Untuk Membuka Database di Access VBA