Skip to main content

Fungsi Untuk Menampilkan Tipe Data Field di Access VBA

Tipe data atau data type adalah properti terpenting sebuah field. Properti tipe data menentukan jenis data macam apakah yang harus disimpan pada sebuah field dalam sebuah tabel. Selain itu, tipe data juga menentukan cara penyajian data dalam sebuah report.
Pada aplikasi front-end yang sama sekali tidak menggunakan linked table sebagai database back-end, kita harus menyertakan kode VBA yang bisa mengenali tipe data sebuah field. Tujuannya, agar saat pemasukkan data, kita tidak mengalami kesalahan. Jadi, pada saat pemasukkan data dalam sebuah aplikasi front-end, tipe data juga bisa digunakan sebagai salah satu cara untuk mem-validasi pemasukkan data. Dengan memisahkan front-end seperti ini, proses validasi dapat dilakukan di komputer client, sehingga tidak membebani trafik jaringan dan server. Saat proses validasi tipe data telah dilakukan di komputer client melalui aplikasi front-end, data siap disimpan di back-end secara permanen.

Sebagai contoh, sebuah field dengan tipe data Text (Short  Text atau Long Text) menyimpan data dalam bentuk karakter teks atau numerik. Contoh lainnya, sebuah field dengan tipe data Number, field ini hanya bisa menyimpan data numerik saja, seperti terlihat pada gambar di bawah ini.
Pada MS Access 2007, ada sepuluh tipe data yang berbeda:
  1. Text (Short Text sejak Access 2010): tipe data untuk karakter dengan ukuran yang pendek, hanya sepanjang 255 karakter saja. Nilai field ini dapat berupa alfanumerik, yaitu beruppa angka  atau huruf. Misalnya, field untuk nama atau alamat jalan.
  2. Memo (Long Text sejak Access 2010): tipe data yang digunakan untuk menyimpan karakter dengan ukuran yang sangat besar. Kita juga bisa menyimpan format (misalnya karakter dengan font italic, bold, 12pt, warna merah, hijau, dsb) dalam field dengan tipe data ini. Field dengan tipe data ini dapat digunakan untuk memberi keterangan yang serinci mungkin.
  3. Number: untuk menyimpan data dengan nilai numerik..
    1. Byte: antara 0 dan 255
    2. Integer: angka bulat di antara -32,768 dan -32,768.
    3. Long : angka bulat di antara -2,147,483,648 dan 2,147,483,647
    4. Single: angka di antara -3.402823E38 dan -1.401298E-45 untuk nilai negatif; 1.401298E-45 to 3.402823E38 untuk nilai positif.
    5. Double: angka di antara -1.79769313486231E308 dan -4.94065645841247E-324 untuk nilai negatif; 4.94065645841247E-324 dan 1.79769313486232E308 untuk nilai positif.
    6. Replication ID, untuk menyimpan Globally Unique Identifier (GUID) yangdiperlukan sebagai replika.
    7. Decimal: angka di antara -9.999E27 dan 9.999E27
    Khusus untuk data yang digunakan sebagai mata uang, Access membuat tipe data sendiri yang disebut Currency, seperti dijelaskan di bawah.
  4. Date/Time: untuk menyimpan data tanggal dan waktu.
  5. Currency: untuk menyimpan data moneter.
  6. AutoNumber: tipe data numerik yang secara otomatis dibuat oleh Access, menggunakan Long (Long Integer).
  7. Yes/No: untuk menyimpan data Boolean, hanya terdiri dari 0 (bila salah, false, atau no) dan bukan 0 (bila benar, true, atau yes).
  8. OLE Object: untuk tipe data Object Link and Embedded, seperti dokumen Word, Excel, PDF, dsb.
  9. Hyperlink: tipe data hyperlink, seperti alamat URL dan e-mail.
  10. Attachment Files: misalnya photo digital. Setiap record dapat menyimpan banyak file.
Dengan menggunakan tipe data di atas, kita bisa membuat fungsi di VBA untuk menampilkan tipe data sebuah field. Berikut ini adalah fungsi untuk menampilkan tipe data sebuah field:
Private Function arrrayTampilkanTipeField(intTipeField As Integer) As Variant
  Dim varTipeField As Variant
On Error GoTo Err_Msg
  Select Case intTipeField
'Numeric
    Case dbBigInt: varTipeField = Array("Numeric", "Big Integer", dbBigInt)
    Case dbByte: varTipeField = Array("Numeric", "Byte", dbByte)
    Case dbCurrency: varTipeField = Array("Numeric", "Currency", dbCurrency)
    Case dbNumeric: varTipeField = Array("Numeric", "Numeric", dbNumeric)
    Case dbDecimal: varTipeField = Array("Numeric", "Decimal", dbDecimal)
    Case dbSingle: varTipeField = Array("Numeric", "Single", dbSingle)
    Case dbDouble: varTipeField = Array("Numeric", "Double", dbDouble)
    Case dbInteger: varTipeField = Array("Numeric", "Integer", dbInteger)
    Case dbLong: varTipeField = Array("Numeric", "Long Integer", dbLong)
'Text
    Case dbChar: varTipeField = Array("Text", "Char", dbChar)
    Case dbMemo: varTipeField = Array("Text", "Memo", dbMemo)
    Case dbText: varTipeField = Array("Text", "Text", dbText)
'Date and Time
    Case dbDate: varTipeField = Array("Date", "Date", dbDate)
    Case dbTime: varTipeField = Array("Date", "Time", dbTime)
    Case dbTimeStamp: varTipeField = Array("Date", "Time Stamp", dbTimeStamp)
'Binary
    Case dbBinary: varTipeField = Array("Numeric", "Binary", dbBinary)
    Case dbLongBinary: varTipeField = Array("Binary", "OLE Object (Long Binary)", dbLongBinary)
    Case dbVarBinary: varTipeField = Array("Binary", "VarBinary", dbVarBinary)
'Others
    Case dbBoolean: varTipeField = Array("Boolean", "Yes/No", dbBoolean)
    Case dbAttachment: varTipeField = Array("Attachment", "Attachment", dbAttachment)
    Case dbFloat: varTipeField = Array("Float", "Float", dbFloat)
    Case dbGUID: varTipeField = Array("GUID", "Replication Id (GUID)", dbGUID)
    Case Else: varTipeField = Array("Belum didefinisikan", "Belum didefinisikan", "Belum didefinisikan")
  End Select
  arrrayTampilkanTipeField = varTipeField
Exit_Function:
  Exit Function
Err_Msg:
  MsgBox "Function arrrayTampilkanTipeField, Error # " & str(Err.Number) & ", source: " & Err.Source & _
  Chr(13) & Err.Description
  Resume Exit_Function
End Function
Pernyataan Private di atas menunjukkan bahwa fungsi arrrayTampilkanTipeField hanya bisa dijalankan di modul tertentu saja. Di modul lain, fungsi dengan awalan Private seperti di atas tidak bisa dijalankan.

Fungsi arrrayTampilkanTipeField akan menghasilkan output berupa array yang terdiri dari tiga item:
  1. Item dengan indeks 0, menjelaskan tipe grup secara umum, misalnya berupa teks, numerik, boolean, dan sebagainya.
  2. Item dengan indeks 1, menjelaskan tipe data field seperti tercatat pada daftar tipe data yang ada pada sebuah desain tabel (design view tabel) di Access.
  3. Item dengan indeks 2, menyatakan nilai konstanta dari tipe data, ditulis dengan menggunakan DAO.

Implementasi

Untuk dapat menjalankan fungsi di atas, kita harus:
  1. Membuka sebuah database terlebih dahulu dengan menggunakan fungsi membukaDatabase
  2. Membuka recordset/tabel yang nama fieldnya ingin dimuat, menggunakan fungsi membukaRecordset
  3. Melakukan proses iterasi field yang ada dalam recordset di atas
  4. Memuat/menampilkan tipe field sebagai hasil dar proses iterasi.
  5. Implementasikan fungsi arrrayTampilkanTipeField sebagai berikut: arrrayTampilkanTipeField ([nomor tipe field]) ([nomor indeks])
Dengan cara yang sederhana, kita dapat menggunakan kode VBA berikut ini untuk memperoleh daftar tipe data:
Function arrrayTampilkanTipeFieldContoh()
  Dim i As Integer, iMax As Integer
  iMax = 11
  For i = 1 To iMax
    If arrrayTampilkanTipeField(i)(0) <> "belum didefinisikan" Then
      Debug.Print "Group: " & arrrayTampilkanTipeField(i)(0) & _
                  ", Data Type Name: " & arrrayTampilkanTipeField(i)(1) & _
                  ", Data Type Const: " & arrrayTampilkanTipeField(i)(2)
    End If
  Next i
End Function
Bila arrrayTampilkanTipeFieldContoh dijalankan di Immediate Window, hasilnya adalah sebagai berikut:
Group: Boolean, Data Type Name: Yes/No, Data Type Const: 1
Group: Numeric, Data Type Name: Byte, Data Type Const: 2
Group: Numeric, Data Type Name: Integer, Data Type Const: 3
Group: Numeric, Data Type Name: Long Integer, Data Type Const: 4
Group: Numeric, Data Type Name: Currency, Data Type Const: 5
Group: Numeric, Data Type Name: Single, Data Type Const: 6
Group: Numeric, Data Type Name: Double, Data Type Const: 7
Group: Date, Data Type Name: Date, Data Type Const: 8
Group: Numeric, Data Type Name: Binary, Data Type Const: 9
Group: Text, Data Type Name: Text, Data Type Const: 10
Group: Binary, Data Type Name: OLE Object (Long Binary), Data Type Const: 11

Mengapa kita mseti membuat fungsi seperti ini?

Seperti di telah dijelaskan di atas, proses validasi dapat dilakukan di komputer client. Salah satunya adalah dengan menggunakan fungsi arrrayTampilkanTipeField seperti dibuat di atas. Tujuannya, untuk meringankan beban server dan jaringan. Kita dapat menempatkan fungsi arrrayTampilkanTipeFieldContoh sebagai salah satu bagian dari proses validasi yang ditaruh di aplikasi front-end.

Untuk diketahui, fungsi arrrayTampilkanTipeField ini merupakan bagian dari keseluruhan fungsi yang digunakan untuk mengecek keandalan data sebelum dimasukkan dan disimpan ke tabel.

Comments

Posting Terpopuler

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

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Fungsi Untuk Menghitung Pajak Penghasilan PPh 21 di MS Access