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.
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:
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.
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:
- Default View= Single Form.
- Allow Datasheet View= No
- Navigation Button= No
- Record Source= kosong (Unbound)
- Sisipkan sebuah Text Box dengan properti sebagai berikut:
- Name=KodeRek,
- Control Source= Unbound
- Caption dari label Text Box ini: Kode Rekening
- Sisipkan sebuah Text Box dengan properti sebagai berikut:
- Name=NamaRek,
- Control Source= Unbound
- Caption dari label Text Box ini: Nama Rekening
- Sisipkan sebuah Combo Box dengan properti sebagai berikut:
- Name=Grup,
- Control Source= Unbound
- Row Source= Kode Grup;Nama Grup;1;Aktiva;2;Hutang;3;Ekuitas;4;Pendapatan;5;Biaya;6;Ringkasan Pendapatan
- Row Source Type= Value List
- Bound Column= 1
- Column Count= 2
- Column Widths= 0";1.5"
- Column Heads= Yes
- List Width= 1.5"
- Caption dari label Text Box ini: Nama Grup
- Sisipkan sebuah Command Button dengan properti sebagai berikut:
- Name= cmdTambahData,
- Caption= Tambah Data Baru
Option Compare Database Dim daoDatabase As DAO.Database Dim rst As DAO.Recordset Function strKoneksiMySQLs() As String strKoneksiMySQLs = "Driver={MySQL ODBC 5.3 ANSI Driver};" & _ "Database=Akunting;" & _ "UID=root;" & _ "PWD=EDmu51!@;" & _ "SERVER=Localhost;" & _ "Port=3306" End Function Function membukaDatabase() On Error GoTo Err_Msg Set daoDatabase = OpenDatabase("", dbDriverNoPrompt, False, strKoneksiMySQLs) Exit_Function: Exit Function Err_Msg: MsgBox "Function membukaDatabase, Error # " & str(Err.Number) & ", source: " & Err.Source & _ Chr(13) & Err.Description Resume Exit_Function End Function Function menutupDatabase() On Error GoTo Err_Msg If Not (daoDatabase Is Nothing) Then daoDatabase.Close Set daoDatabase = Nothing End If Exit_Function: Exit Function Err_Msg: MsgBox "Function menutupDatabase, Error # " & str(Err.Number) & ", source: " & Err.Source & _ Chr(13) & Err.Description Resume Exit_Function End Function 'Fungsi berikut ini digunakan sebagai proses validasi sebelum data disimpan ke tabel MySQL 'Kita dapat menambahkan sendiri fungsi yang diinginkan. Output dari fungsi validasi yang dibuat umumnya 'berupa Boolean, String, atau tipe data lain yang sesuai. '******* Awal dari fungsi validasi ******* Function tidakAdaKodeRekening() As Boolean On Error GoTo Err_Msg Dim strSql As String Dim fld As DAO.Field Dim ctl As Control strSql = "SELECT COUNT(*) FROM tblRekUtama WHERE KodeRek='" & Me.KodeRek & "'" Debug.Print strSql tidakAdaKodeRekening = True Set rst = daoDatabase.OpenRecordset(strSql, dbOpenDynaset) If rst.Fields(0).Value <> 0 Then tidakAdaKodeRekening = False rst.Close Set rst = Nothing Debug.Print "tidakAdaKodeRekening= " & tidakAdaKodeRekening Exit_Function: Exit Function Err_Msg: MsgBox "Function tidakAdaKodeRekening, Error # " & str(Err.Number) & ", source: " & Err.Source & _ Chr(13) & Err.Description Resume Exit_Function End Function '******* Akhir dari fungsi validasi ******* Private Sub cmdTambahData_Click() 'Bila telah melalui proses validasi, data siap disimpan ke dalam MySQL dengan menggunakan 'fungsi ini. Dengan fungsi ini, kita menaruh data dari komputer client ke server. Dim strSql As String Dim fld As DAO.Field Dim ctl As Control If tidakAdaKodeRekening Then strSql = "SELECT * FROM tblRekUtama" Set rst = daoDatabase.OpenRecordset(strSql, dbOpenDynaset) rst.AddNew For Each ctl In Me.Controls For Each fld In rst.Fields If ctl.name = fld.name Then fld.Value = Controls(ctl.name).Value End If Next fld Next ctl rst.Update Else MsgBox "Maaf, Kode Rekening '" & Me.KodeRek & "' sudah ada dalam daftar. Silakan ganti dengan yang lain." Exit Sub End If rst.Close Set rst = Nothing End Sub Private Sub Form_Open(Cancel As Integer) membukaDatabase End Sub Private Sub Form_Close() menutupDatabase End SubSaat 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
Post a Comment