Skip to main content

Menambah Data Baru pada MySql Back-end Melalui Form di Access Front-end (Cara 2)

Pada database yang murni disusun menggunakan back-end database seperti Access, MySQL, SQL Server, dan sejenisnya, database designer bertugas menyusun arsitektur data yang lebih rinci, seperti bagaimana proses validasi akan dilakukan, caption yang dibutuhkan, tipe data yang diperlukan dan lain sebagainya.
Tujuan utama dalam merancang database back-end seperti di atas adalah supaya data yang tersimpan dapat diandalkan. Secara umum, tujuan penyusunan database hampir sama dalam hal "karakteristik kualitatif informasi"-nya, seperti dapat dibaca di posting yang berjudul Sistem Akuntansi Yang Baik. Kita tidak membahas secara detail tentang hal ini.

Kembali ke topik utama, MySQL mempunyai tipe data Integer yang dapat meningkat atau bertambah secara otomatis, sama seperti di Access. Bila di Access, tipe data Integer yang meningkat itu disebut AutoNumber, di MySQL, tipe data itu disebut Auto_Increment. Tipe data Integer Auto_Increment umumnya digunakan sebagai primary key yang ada di file transaksi, seperti pembuatan kuitansi, tagihan, nomor slip setoran uang dan penarikan uang di bank, nomor slip gaji, tiket reservasi kereta api, dan sebagainya.

Pada aplikasi front-end di Access yang mempunyai linked table dengan database lain, tabel yang mempunyai field dengan tipe data Auto_Increment atau AutoNumber mungkin tidak terlalu masalah. Masalah Auto_Increment atau AutoNumber akan muncul bila kita menyusun aplikasi front end yang murni tidak melibatkan linked table seperti yang akan kita bahas berikut ini. Masalah yang muncul adalah, komputer client (front-end)  tidak bisa memperoleh nomor secara otomatis, seperti halnya bila kita menggunakan linked table.

Data yang kita masukkan melalui front-end belum memperoleh nomor yang akan digunakan sebagai primary key/indeks. Nomor yang berfungsi sebagai primary key atau indeks akan diperoleh saat data sudah tersimpan dalam tabel di database back-end. Nah, supaya sinkron, maka nomor itu harus kita kirim kembali ke komputer clent (fornt-end) supaya user dapat menggunakannnya sewaktu-waktu diperlukan.
Gambar 1. Struktur kolom/field pada tabel tblkuitansikoran di MySQL database

Untuk memahami lebih detail, ikuti kasus seperti contoh pembuatan kuitansi sederhana berikut ini.

Cara menambah data baru pada MySql bila field yang menjadi primary key mempunyai tipe data Integer Auto Increment


Bagi yang belum mengenal MySQL atau MySQL Workbench, silakan gunakan bantuan Search yang ada di blog ini, dengan kata kunci "MySQL".

Langkah pertama adalah membuat tabel untuk menyimpan data transaksi kuitansi koran, seperti pada Gambar 1 di atas. Pada Gambar 1, tabel tblKuitansiKoran mempunyai kolom (field bila di Access) dan properti sebagai berikut:
  1. Untuk column nomor kuitansi:
    1. Column Name=nomorKuitansi,
    2. Data Type= INT
    3. Size= 10
    4. Primary Key= True
    5. Not Null= True
    6. Unique= True
    7. Auto Increment= True
  2. Untuk column tanggal kuitansi:
    1. Column Name=tglKuitansi,
    2. Data Type= DATETIME
  3. Untuk column diterima dari:
    1. Column Name= diterimaDari
    2. Data Type= VARCHAR
    3. Size= 50
  4. Untuk column keterangan:
    1. Column Name= keteranganKuitansi
    2. Data Type= VARCHAR
    3. Size= 70
  5. Untuk column jumlah rupiah:
    1. Column Name= jumlahRupiah
    2. Data Type= INT
    3. Size= 8
Setelah membuat tabel di atas, langkah selanjutnya adalah membuat form di Access. Buatlah form di Access dengan menggunakan blank form. Cara pembuatannya mirip seperri pada posting yang berjudul Menambah Data Baru pada MySql Back-end Melalui Form di Access Front-end (Cara 1).  Hasil formnya kurang lebih seperti ini:
Gambar 2 Pembuatan nama control di form sesuai dengan nama column/field MySQL
Berikut ini adalah properti yang dibutuhkan pada form frmKuitansiKoran seperti gambar di atas.

  1. Default View= Single Form.
  2. Allow Datasheet View= No
  3. Navigation Button= No
  4. Record Source= kosong (Unbound)
Pada bagian Detail dari form frmKuitansiKoran itu, isikan control sebagai berikut:
  1. Sisipkan sebuah Text Box dengan properti sebagai berikut:
    1. Name=nomorKuitansi
    2. Control Source= Unbound
    3. Caption dari label Text Box ini: Nomor Kuitansi
  2. Sisipkan sebuah Text Box dengan properti sebagai berikut:
    1. Name=tglKuitansi
    2. Control Source= Unbound
    3. Caption dari label Text Box ini: Tanggal Kuitansi
  3. Sisipkan sebuah Text Box dengan properti sebagai berikut:
    1. Name=diterimaDari
    2. Control Source= Unbound
    3. Caption dari label Text Box ini:Diterima Dari
  4. Sisipkan sebuah Text Box dengan properti sebagai berikut:
    1. Name=keteranganKuitansi
    2. Control Source= Unbound
    3. Caption dari label Text Box ini: Keterangan
  5. Sisipkan sebuah Text Box dengan properti sebagai berikut:
    1. Name=jumlahRupiah,
    2. Control Source= Unbound
    3. Caption dari label Text Box ini: Jumlah Rupiah
  6. Sisipkan sebuah Command Button dengan properti sebagai berikut:
    1. Name= cmdTambahData,
    2. Caption= Tambah Data Baru
Setelah merancang form frmKuitansiKoran, kita memasukkan kode VBA yang diperlukan ke dalam form ini (form module). Ada pun kode VBA yang diperlukan adalah sebagai berikut:

  1. Option Compare Database  
  2. Dim daoDatabase As DAO.Database  
  3. Dim rst As DAO.Recordset  
  4.   
  5. Function strKoneksiMySQLs() As String  
  6.   strKoneksiMySQLs = "Driver={MySQL ODBC 5.3 ANSI Driver};" & _  
  7.     "Database=Akunting;" & _  
  8.     "UID=root;" & _  
  9.     "PWD=EDmu51!@;" & _  
  10.     "SERVER=Localhost;" & _  
  11.     "Port=3306"  
  12. End Function  
  13. Function membukaDatabase()  
  14. On Error GoTo Err_Msg  
  15.     Set daoDatabase = OpenDatabase("", dbDriverNoPrompt, False, strKoneksiMySQLs)  
  16. Exit_Function:  
  17.   Exit Function  
  18. Err_Msg:  
  19.   MsgBox "Function membukaDatabase, Error # " & str(Err.Number) & ", source: " & Err.Source & _  
  20.   Chr(13) & Err.Description  
  21.   Resume Exit_Function  
  22. End Function  
  23. Function menutupDatabase()  
  24. On Error GoTo Err_Msg  
  25.   If Not (daoDatabase Is NothingThen  
  26.     daoDatabase.Close  
  27.     Set daoDatabase = Nothing  
  28.   End If  
  29. Exit_Function:  
  30.   Exit Function  
  31. Err_Msg:  
  32.   MsgBox "Function menutupDatabase, Error # " & str(Err.Number) & ", source: " & Err.Source & _  
  33.   Chr(13) & Err.Description  
  34.   Resume Exit_Function  
  35. End Function  
  36.   
  37. Private Sub cmdTambahData_Click()  
  38.   Dim strSql As String  
  39.   Dim fld As DAO.Field  
  40.   Dim ctl As Control  
  41.   Dim varBookmark As Variant  
  42.     
  43. 'Bila telah melalui proses validasi, data siap disimpan ke dalam MySQL dengan menggunakan  
  44. 'fungsi ini. Dengan fungsi ini, kita menaruh data dari komputer client ke server.  
  45.     strSql = "tblkuitansikoran"  
  46.     Set rst = daoDatabase.OpenRecordset(strSql, dbOpenDynaset, dbSeeChanges)  
  47.     rst.AddNew  
  48.     For Each ctl In Me.Controls  
  49.         For Each fld In rst.Fields  
  50.           If ctl.name = fld.name Then  
  51.             fld.Value = Controls(ctl.name).Value  
  52.           End If  
  53.         Next fld  
  54.     Next ctl  
  55.     rst.Update  
  56.     With rst  
  57.       If rst.Bookmarkable = False Then  
  58.         Debug.Print "Recordset is not Bookmarkable!"  
  59.       Else  
  60.         rst.Bookmark = rst.LastModified  
  61.         Me.nomorKuitansi = rst.Fields("nomorKuitansi").Value  
  62.         Debug.Print Me.nomorKuitansi  
  63.       End If  
  64.     End With  
  65.   rst.Close  
  66.   Set rst = Nothing  
  67. End Sub  
  68. Private Sub Form_Open(Cancel As Integer)  
  69.   membukaDatabase  
  70. End Sub  
Saat tombol Tambah Data Baru ditekan, client  dari aplikasi Access mengirimkan data ke server MySQL Database. Di server, MySQL kemudian menyimpan data baru pada urutan nomorKuitansi yang paling akhir. Setelah itu, server MySQL Database akan mengirimkan nomorKuitansi terakhir ke client. Lalu, nomorKuitansi ini kemudian ditampilkan di form di client melalui perintah yang ada dalam pernyataan With rst.

Gambar 3 Animasi pemasukkan data dari form Acsess ke MySQL database

Gambar animasi di atas menjelaskan proses pemasukkan data ke dalam MySQL database untuk kasus di mana column pada tabel MySQL mempunyai tipe data Integer Auto_Increment. Perhatikanlah saat tombol Tambah Data Baru ditekan, nomorKuitansi akan ditampilkan untuk menunjukkan bahwa data telah tersimpan di tabel tblKuitansiKoran. Dengan cara ini, kita tidak kehilangan arah dalam melakukan pelacakan. Dalam hal ini, nilai nomorKuitansi digunakan sebagai colum/field/control yang digunakan untuk melacak karena sifat field ini unik dan diperlakukan sebagai primary key.

Comments

Posting Terpopuler

Cara Mengatur dan Menggunakan ODBC untuk Mengakses Data Eksternal

Cara Sederhana Membuat Fungsi Terbilang di MS Acess VBA

Fungsi Untuk Membuka Database di Access VBA