Skip to main content

Mengenal Tabel Temporer di MS Access

Tabel temporer atau tabel sementara dalam penjelasan posting berikut ini bukanlah tabel temporer yang dibuat oleh MS Access secara tersembunyi (hidden by default). Sebaliknya, tabel temporer dalam postingan ini merupakan tabel yang kita buat sendiri.

Umumnya, tabel temporer hanya akan kita buat saat dibutuhkan. Bila tabel temporer tidak lagi dibutuhkan, maka kita akan menghapus tabel itu dari Access Navigation pane. Jadi, karena bersifat temporer, maka tabel ini tidak akan pernah tersimpan secara permanen dalam sebuah aplikasi database Access.

Tidak ada tempat penyimpanan yang khusus digunakan untuk membuat tabel temporer. Sama seperti tabel Access pada umumnya, tabel temporer juga ada di bagian Table dari Access Navigation pane. Perbedaannya, kita sebagai pemrogram Access hanya perlu memberikan identifikasi yang khusus berkaitan dengan nama tabel temporer itu. Sebagai misal, tblTemp_namaTabel, tblTmpNamaTabel, dan sebagainya. Kita dapat memberikan nama tabel temporer sesuai selera, mana yang paling nyaman dan mudah diingat.

Membuat Tabel Temporer

Tabel temporer dapat kita buat pada saat sebuah aplikasi database Access dibuka untuk pertama kalinya. Selain itu, tabel temporer dapat dibuat pada saat sebuah objek Access seperti form, report, module, query, atau macro dibuka atau dieksekusi. Bila sebuah objek Access atau aplikasi database Access sudah ditutup. selesai dieksekusi, atau sudah tidak dibutuhkan lagi, maka tabel temporer itu harus dihapus. Cara terbaik membuat tabel temporer adalah dengan menggunakan kode VBA, jangan pernah membuat tabel temporer melalui sebuah query di Access Navigation pane karena tidak aman dari tangan-tangan tak bertanggungjawab. Berikut ini adalah contoh pembuatan tabel temporer untuk menampilkan buku besar. Pembaca dapat memperoleh kode lengkap dengan membeli buku yang berjudul Membuat Program Akuntansi dengan MS Access VBA.

Function BuatTabelBukuBesar()
'------------------------------------------
' Fungsi untuk membuat tabel/query
' yang digunakan dalam proses pembuatan
' buku besar.
'------------------------------------------
  Dim obj As AccessObject, dbsObject As Object
  Dim dbs As DAO.Database
  Dim tdf As DAO.TableDef
  Dim fld As DAO.Field2
On Error GoTo Err_Msg
  Set dbsObject = Application.CurrentData
  For Each obj In dbsObject.AllTables
    If obj.Name = "tblBukuBesar" Then
      DoCmd.DeleteObject acTable, obj.Name
    End If
  Next obj
  Set dbs = CurrentDb()
  ' membuat tabel dengan nama tblBukuBesar
  Set tdf = dbs.CreateTableDef("tblBukuBesar")
  ' membuat field untk tblBukuBesar
  tdf.Fields.Append tdf.CreateField("JurnalId", dbLong)
  tdf.Fields.Append tdf.CreateField("TipeJurnal", dbText, 3)
  tdf.Fields.Append tdf.CreateField("NoJurnal", dbLong)
  tdf.Fields.Append tdf.CreateField("TglTransaksi", dbDate)
  tdf.Fields.Append tdf.CreateField("Ref", dbText, 50)
  tdf.Fields.Append tdf.CreateField("NoRef", dbLong)
  tdf.Fields.Append tdf.CreateField("NoUrut", dbLong)
  tdf.Fields.Append tdf.CreateField("RefDetail", dbText, 50)
  tdf.Fields.Append tdf.CreateField("KodeRek", dbText, 3)
  tdf.Fields.Append tdf.CreateField("Deskripsi", dbText, 100)
  tdf.Fields.Append tdf.CreateField("Deriv1", dbText, 3)
  tdf.Fields.Append tdf.CreateField("Deriv2", dbText, 3)
  tdf.Fields.Append tdf.CreateField("Kuantitas", dbDouble)
  tdf.Fields.Append tdf.CreateField("SU", dbText, 12)
  tdf.Fields.Append tdf.CreateField("HargaSatuan", dbDouble)
  tdf.Fields.Append tdf.CreateField("TotalJumlah", dbDouble)
  tdf.Fields.Append tdf.CreateField("Debit", dbDouble)
  tdf.Fields.Append tdf.CreateField("Kredit", dbDouble)
  tdf.Fields.Append tdf.CreateField("SaldoAkhir", dbDouble)
  tdf.Fields.Append tdf.CreateField("JthTempo", dbDate)
  dbs.TableDefs.Append tdf
  dbs.Close
Cleanup:
    Set tdf = Nothing
    Set dbs = Nothing
Exit_Function:
  Exit Function
Err_Msg:
  MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
  Resume Exit_Function
End Function

Alasan/Tujuan Pembuatan Tabel Temporer

Ada berbagai macam alasan kenapa kita harus membuat tabel temporer dalam sebuah aplikasi database pada umumnya, dan Access secara khusus, yaitu:
  1. Mempercepat proses query, terutama bila query yang dibuat secara bertahap atau bertingkat (query dari sebuah query). Selain itu, bila sebuah query banyak mengandung perhitungan yang dibuat melalui semacam calculated formula (expression builder), maka sebaiknya kita membuat tabel temporer untuk mempercepat proses perhitungan dan loading saat akan ditampilkan di form atau report
  2. Mengurangi trafik jaringan. Menarik data dari sebuah server (sebagai Back-end Database) untuk ditampilkan ke terminal client (sebagai Front-end Database) tanpa menggunakan tabel temporer dapat memperlambat trafik jaringan. Contohnya adalah sebuah form input data transaksi yang mempunyai combo/list box yang diambil dari data induk/master. Kita dapat membuat link table yang terhubung ke server dan menjadi record source dari form input data transaksi. Sedangkan row source dari combo/list box yang diambil dari data induk/master, kita dapat menaruh tabel temporer yang ditempatkan di terminal klien. Dengan demikian, kita tidak perlu memuat semua data langsung dari server.
  3. Menyajikan data yang diperoleh dari proses query mungkin akan memakan waktu lama. Bila kita ingin menampilkan beberapa laporan, baik dalam bentuk form atau report, yang mempunyai kandungan data relatif sama, tetapi proses query memakan waktu lama, maka sebaiknya kita gunakan tabel temporer yang disimpan di terminal klien. Kita dapat memperbaharui laporan itu dengan menyediakn fasilitas refresh/reload data pada saat dibutuhkan.
  4. Menampilkan data yang diimpor dari sumber data di luar database yang dibuka. Sebelum data hasil impor disimpan dalam tabel permanen, ada baiknya kita membuat tabel temporer untuk mengecek validitas dan akurasi data hasil impor. Bila ada kesalahan input data maka kita dapat memperbaikinya di tabel temporer atau dengan cara mengimpor ulang data yang akan disimpan dalam tabel permanen. Contohnya seperti Gambar 1 di bawah ini. Pembahasan lebih detail dapat dibaca di posting yang berjudul Mengimpor Data Budget dari Excel ke Tabel di Access.
    Gambar 1

Comments

  1. Maaf pak, cara buat tabel diatas untuk buat yg field record type autonumber codenya gmn?

    ReplyDelete
    Replies
    1. Di bawah Set tdf = dbs.CreateTableDef("tblBukuBesar") sisipkan kode vba berikut ini:
      Set fld = tdf.CreateField("JID", dbLong) 'untuk field autonumber
      fld.Attributes = dbAutoIncrField
      tdf.Fields.Append fld
      Set fld = Nothing

      Delete
    2. Sudah dicoba,beres.. terima kasih pak...hilang 1 masalah lagi

      Delete

Post a Comment

Posting Terpopuler

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Fungsi Untuk Menghitung Pajak Penghasilan PPh 21 di MS Access

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