Skip to main content

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

Setelah mengetahui cara menampilkan data MySql di form di Access, kita akan belajar cara menambah data baru. Ada bebera cara menambah data baru pada MySql back-end melalui form di Access front-end, tergantung pada tipe data field yang akan digunakan sebagai primary key. Cara pertama berikut ini digunakan bila primary key mempunyai tipe data Text.
Field KodeRek di atas berfungsi sebagai primary key dengan tipe data Text

Cara menambah data baru pada MySql bila field yang menjadi primary key mempunyai tipe data Text

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

Pada situasi tertentu, kita mungkin menggunakan tipe data Text untuk field yang berperan sebagai primary key. Untuk memahaminya, kita langsung menggunakan contoh berikut ini. Buatlah sebuah form dengan menggunakan Blank Form dan namailah form itu frmRekUtama. Berikut ini adalah properti dari form:
  1. Default View= Single Form.
  2. Allow Datasheet View= No
  3. Navigation Button= No
  4. Record Source= kosong (Unbound)
Pada bagian Detail dari form frmRekUtama itu, isikan control sebagai berikut:
  1. Sisipkan sebuah Text Box dengan properti sebagai berikut:
    1. Name=KodeRek,
    2. Control Source= Unbound
    3. Caption dari label Text Box ini: Kode Rekening
  2. Sisipkan sebuah Text Box dengan properti sebagai berikut:
    1. Name=NamaRek,
    2. Control Source= Unbound
    3. Caption dari label Text Box ini: Nama Rekening
  3. Sisipkan sebuah Combo Box dengan properti sebagai berikut:
    1. Name=Grup,
    2. Control Source= Unbound
    3. Row Source= Kode Grup;Nama Grup;1;Aktiva;2;Hutang;3;Ekuitas;4;Pendapatan;5;Biaya;6;Ringkasan Pendapatan
    4. Row Source Type= Value List
    5. Bound Column= 1
    6. Column Count= 2
    7. Column Widths= 0";1.5"
    8. Column Heads= Yes
    9. List Width= 1.5"
    10. Caption dari label Text Box ini: Nama Grup
  4. Sisipkan sebuah Command Button dengan properti sebagai berikut:
    1. Name= cmdTambahData,
    2. Caption= Tambah Data Baru
Setelah merancang form frmRekUtama, 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. 'Fungsi berikut ini digunakan sebagai proses validasi sebelum data disimpan ke tabel MySQL  
  37. 'Kita dapat menambahkan sendiri fungsi yang diinginkan. Output dari fungsi validasi yang dibuat umumnya   
  38. 'berupa Boolean, String, atau tipe data lain yang sesuai.  
  39. '******* Awal dari fungsi validasi *******  
  40. Function tidakAdaKodeRekening() As Boolean  
  41. On Error GoTo Err_Msg  
  42.   Dim strSql As String  
  43.   Dim fld As DAO.Field  
  44.   Dim ctl As Control  
  45.   
  46.   strSql = "SELECT COUNT(*) FROM tblRekUtama WHERE KodeRek='" & Me.KodeRek & "'"  
  47.   Debug.Print strSql  
  48.   tidakAdaKodeRekening = True  
  49.   Set rst = daoDatabase.OpenRecordset(strSql, dbOpenDynaset)  
  50.   If rst.Fields(0).Value <> 0 Then tidakAdaKodeRekening = False  
  51.   rst.Close  
  52.   Set rst = Nothing  
  53.   Debug.Print "tidakAdaKodeRekening= " & tidakAdaKodeRekening  
  54. Exit_Function:  
  55.   Exit Function  
  56. Err_Msg:  
  57.   MsgBox "Function tidakAdaKodeRekening, Error # " & str(Err.Number) & ", source: " & Err.Source & _  
  58.   Chr(13) & Err.Description  
  59.   Resume Exit_Function  
  60. End Function  
  61. '******* Akhir dari fungsi validasi *******  
  62. Private Sub cmdTambahData_Click()  
  63. 'Bila telah melalui proses validasi, data siap disimpan ke dalam MySQL dengan menggunakan  
  64. 'fungsi ini. Dengan fungsi ini, kita menaruh data dari komputer client ke server.  
  65.   Dim strSql As String  
  66.   Dim fld As DAO.Field  
  67.   Dim ctl As Control  
  68.     
  69.   If tidakAdaKodeRekening Then  
  70.     strSql = "SELECT * FROM tblRekUtama"  
  71.     Set rst = daoDatabase.OpenRecordset(strSql, dbOpenDynaset)  
  72.     rst.AddNew  
  73.     For Each ctl In Me.Controls  
  74.         For Each fld In rst.Fields  
  75.           If ctl.name = fld.name Then  
  76.             fld.Value = Controls(ctl.name).Value  
  77.           End If  
  78.         Next fld  
  79.     Next ctl  
  80.     rst.Update  
  81.   Else  
  82.     MsgBox "Maaf, Kode Rekening '" & Me.KodeRek & "' sudah ada dalam daftar. Silakan ganti dengan yang lain."  
  83.     Exit Sub  
  84.   End If  
  85.   rst.Close  
  86.   Set rst = Nothing  
  87. End Sub  
  88. Private Sub Form_Open(Cancel As Integer)  
  89.   membukaDatabase  
  90. End Sub  
  91. Private Sub Form_Close()  
  92.   menutupDatabase  
  93. End Sub  
Saat form dibuka pertama kali, event procedure Form_Open dijalankan untuk membuka database melalui fungsi membukaDatabase. Pada fungsi itu, kita menjalankan fungsi untuk menentukan String Koneksi MySQL di Access VBA.

Setelah database terbuka, kita dapat memasukkan data yang diperlukan ke dalam form frmRekUtama. Saat tombol Tambah Data Baru ditekan, data divalidasi terlebih dahulu melalui fungsi tidakAdaKodeRekening untuk memastikan bahwa tidak ada duplikasi data pada primary key. Setelah dipastikan valid, data kemudian dikirim ke server database MySQL untuk disimpan.

Script VBA di atas adalah kode yang paling sederhana, yang penting substansinya kena dan dapat dimengerti. Kita dapat menambahkan berbagai macam kode yang diperlukan untuk membuat form di Access semakin mudah digunakan. Jadi, silakan bereksperimen sendiri.

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