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:
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.
![]() |
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 Sub
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