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 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
Post a Comment