Skip to main content

Aplikasi Database CRUD (VB6 + Ms. Access + Crystal Report 8)



Assalamualaikum wr. wb. sobat yadishare, apa kabar ? Di artikel kali ini saya akan membagikan tutorial tentang bagaimana cara membuat aplikasi CRUD (create, read, update, dan delete) menggunakan aplikasi atau bahasa pemrograman visual basic 6.0 dan database yang akan saya gunakan adalah database microsoft access. Untuk pembuatan laporannya nanti saya akan menggunakan aplikasi crystal report versi 8. Oke topiknya kali ini adalah membuat aplikasi crud sederhana tentang data pegawai. Namun di dalam aplikasi ini nanti teman-teman akan mempunyai opsi yang cukup lengkap. Selain ada fitur crud dan filtering data, teman-teman bisa langsung mencetak laporannya ke dalam printer. Keren kan ???

Ok langsung saja kita mulai tutorialnya. Untuk membuat aplikasi crud ini, dibutuhkan sebuah database microsoft access. Nah untuk mempersingkat waktu, berhubung saya sudah membuatkan tutorialnya di artikel dan video saya sebelumnya, jadi saya tidak akan bahas lagi disini. Teman-teman bisa langsung baca tutorial mengenai cara membuat database dan table pegawai di microsoft access buat yang senang membaca, dan buat teman-teman yang lebih senang menonton video tutorial bisa langsung menyimak tutorialnya melalui video berikut ini :



Sekarang kita akan masuk ke dalam proses pembuatan aplikasinya menggunakan aplikasi visual basic 6. Kita buka dulu ya aplikasinya...




Kalau sudah silahkan pilih VB Enterprise Edition Controls dan click open. Terus ganti name dari form1 menjadi frmpegawai dan silahkan teman-teman design form1 nya menjadi seperti ini yah :



Terus tambahkan lagi sebuah form untuk digunakan sebagai form entry dan edit pegawai. Ganti name dari form2 menjadi frmPegawaiEntry dan silahkan teman-teman design form2 nya menjadi seperti ini yah :



Kalau teman-teman lihat di list components yang saya gunakan di bawah ini, hanya ada 3 component sebenarnya. Jadi teman-teman bisa remove component-component yang tidak dibutuhkan ya...




Di bagian references kita membutuhkan Microsoft ActiveX Data Objects 2.x library (ADODB) untuk digunakan sebagai library database yang akan kita gunakan di dalam program. Berikut adalah references yang saya gunakan :




Kemudian add sebuah module ke dalam project dan tambahkan 3 buah variable ke dalamnya. Berikut tampilannya :




Sekarang buka frmpegawai dan masukkan coding berikut ini :

[code language="vb"] Option Explicit Private Sub CmdAddPegawai_Click() blnentry = True frmPegawaiEntry.Show vbModal End Sub Private Sub Command1_Click() With CrystalReport1 .ReportFileName = App.Path & "\Report Daftar Pegawai.rpt" .Connect = App.Path & "dbpegawai.mdb" .DiscardSavedData = True .RetrieveDataFiles .ReportSource = 0 .SQLQuery = "SELECT * FROM pegawai ORDER by nama_lengkap" .ReportTitle = "Report Data Pegawai" .Destination = crptToWindow .WindowState = crptMaximized .Action = 1 End With End Sub Private Sub vsfPegawai_DblClick() If vsfPegawai.Rows = 0 Then Exit Sub blnentry = False frmPegawaiEntry.Show vbModal End Sub Private Sub CmdApply_Click() Call ShowData End Sub Private Sub cmdClose_Click() End End Sub Private Sub CmdDelete_Click() On Error GoTo Err_Hand Dim i As Integer Dim BlnAda As Boolean 'Validasi If vsfPegawai.Rows = 0 Then MsgBox "Silahkan pilih pegawai yang akan dihapus !", vbInformation, "Pesan": Exit Sub For i = 1 To vsfPegawai.Rows - 1 If vsfPegawai.TextMatrix(i, 0) = True Then BlnAda = True Exit For End If Next If BlnAda = False Then MsgBox "Silahkan pilih pegawai yang akan dihapus !", vbInformation, "Pesan": Exit Sub If MsgBox("Anda yakin ingin menghapus semua pegawai yang anda pilih ?", vbExclamation + vbYesNo, "Konfirmasi") = vbNo Then Exit Sub Dim cntrx As New ADODB.Connection cntrx.Open Conn cntrx.BeginTrans For i = 1 To vsfPegawai.Rows - 1 If vsfPegawai.TextMatrix(i, 0) = True Then cntrx.Execute "DELETE from pegawai WHERE nip='" & vsfPegawai.TextMatrix(i, 2) & "'" End If Next cntrx.CommitTrans cntrx.Close ShowData MsgBox "Semua data pegawai yang anda pilih telah terhapus !", vbExclamation, "Pesan" Exit Sub Err_Hand: cntrx.RollbackTrans MsgBox Err.Description, vbCritical, "Error No. " & CStr(Err.Number) End Sub Private Sub Form_Load() If Conn.State = adStateOpen Then Conn.Close Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\dbpegawai.mdb;" CboKelamin.ListIndex = 0 CboStatus.ListIndex = 0 Call ShowData End Sub Sub ShowData() Dim strSQL As String Dim rsMn As New ADODB.Recordset Dim i As Integer strSQL = "Select * from pegawai where id>0 " If txtnip.Text "" Then strSQL = strSQL & " and nip like '%" & txtnip.Text & "%' " If txtnama.Text "" Then strSQL = strSQL & " and nama_lengkap like '%" & txtnama.Text & "%' " If CboKelamin.Text "All" Then strSQL = strSQL & " and kelamin = '" & CboKelamin.Text & "' " If CboStatus.Text "All" Then strSQL = strSQL & " and status = '" & CboStatus.Text & "' " strSQL = strSQL & " order by nama_lengkap" rsMn.Open strSQL, Conn, adOpenForwardOnly, adLockReadOnly With vsfPegawai i = 1 .Rows = i Do While Not rsMn.EOF i = .Rows - 1 i = i + 1 .AddItem i .TextMatrix(i, 0) = 0 .TextMatrix(i, 1) = i .TextMatrix(i, 2) = rsMn("nip") .TextMatrix(i, 3) = rsMn("nama_lengkap") .TextMatrix(i, 4) = rsMn("tempat_lahir") .TextMatrix(i, 5) = rsMn("tgl_lahir") .TextMatrix(i, 6) = rsMn("kelamin") .TextMatrix(i, 7) = rsMn("status") .TextMatrix(i, 8) = Format(rsMn("createdate"), "dd-mmm-yyyy hh:mm:ss") .TextMatrix(i, 9) = Format(rsMn("lastupdate"), "dd-mmm-yyyy hh:mm:ss") rsMn.MoveNext Loop rsMn.Close LblRecord.Caption = .Rows - 1 End With End Sub [/code]

Sekarang buka frmpegawaientry dan masukkan coding berikut ini :

[code language="vb"] Option Explicit Private Sub CmdAdd_Click() On Error GoTo Err_Hand Dim strSQL As String Dim rs As New ADODB.Recordset If txtnip.Text = "" Then MsgBox "Harap isi nip", vbExclamation, "Pesan" txtnip.SetFocus Exit Sub End If If txtnama.Text = "" Then MsgBox "Harap isi nama lengkap", vbExclamation, "Pesan" txtnama.SetFocus Exit Sub End If If txttempat.Text = "" Then MsgBox "Harap isi tempat lahir", vbExclamation, "Pesan" txttempat.SetFocus Exit Sub End If If DTLahir.Value = "" Then MsgBox "Harap isi tanggal lahir", vbExclamation, "Pesan" DTLahir.SetFocus Exit Sub End If If CboKelamin.Text = "" Then MsgBox "Harap isi jenis kelamin", vbExclamation, "Pesan" CboKelamin.SetFocus Exit Sub End If If CboStatus.Text = "" Then MsgBox "Harap isi status", vbExclamation, "Pesan" CboStatus.SetFocus Exit Sub End If If blnentry = True Then strSQL = "Select nip from pegawai where nip = '" & txtnip.Text & "'" rs.Open strSQL, Conn, adOpenDynamic, adLockOptimistic If Not rs.EOF Then MsgBox "Data pegawai dengan NIP : " & txtnip.Text & " sudah ada !", vbInformation, "Pesan" rs.Close Set rs = Nothing Exit Sub End If rs.Close Set rs = Nothing If MsgBox("Anda yakin ingin menyimpan data pegawai ini ?", vbInformation + vbYesNo, "Tambah Pegawai") = vbNo Then Exit Sub rs.CursorLocation = adUseClient rs.Open "Select * from pegawai", Conn, adOpenDynamic, adLockOptimistic rs.AddNew rs("nip") = txtnip.Text rs("nama_lengkap") = txtnama.Text rs("tempat_lahir") = txttempat.Text rs("tgl_lahir") = DTLahir.Value rs("kelamin") = CboKelamin.Text rs("status") = CboStatus.Text rs("createdate") = Now rs.Update rs.Close Set rs = Nothing MsgBox "Data pegawai sudah tersimpan !", vbInformation Else If MsgBox("Anda yakin ingin menyimpan perubahan tersebut ?", vbInformation + vbYesNo, "Update Pegawai") = vbNo Then Exit Sub strSQL = "UPDATE pegawai Set nama_lengkap = '" & txtnama.Text & "'" & _ ",tempat_lahir='" & txttempat.Text & "'" & _ ",tgl_lahir='" & DTLahir.Value & "'" & _ ",kelamin='" & CboKelamin.Text & "'" & _ ",status='" & CboStatus.Text & "'" & _ ", lastupdate = now() WHERE nip='" & txtnip.Text & "'" Conn.Execute strSQL MsgBox "Data pegawai sudah diupdate !", vbInformation End If frmpegawai.ShowData Unload Me Exit Sub Err_Hand: MsgBox Err.Description, vbCritical, "Error Code:" & Err.Number End Sub Private Sub cmdClose_Click() Unload Me End Sub Private Sub Form_Load() CboKelamin.ListIndex = 0 CboStatus.ListIndex = 0 If blnentry = True Then txtnip.Enabled = True CmdAdd.Caption = "Simpan" Else txtnip.Enabled = False CmdAdd.Caption = "Update" Dim strSQL As String Dim rs As New ADODB.Recordset strSQL = "select * from pegawai Where nip = '" & frmpegawai.vsfPegawai.TextMatrix(frmpegawai.vsfPegawai.Row, 2) & "'" rs.Open strSQL, Conn, adOpenDynamic, adLockOptimistic If Not rs.EOF Then txtnip.Text = rs("nip") txtnama.Text = rs("nama_lengkap") txttempat.Text = rs("tempat_lahir") DTLahir.Value = rs("tgl_lahir") CboKelamin.Text = rs("kelamin") CboStatus.Text = rs("status") End If rs.Close Set rs = Nothing End If End Sub Private Sub txtnip_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then Set WshShell = CreateObject("WScript.Shell") WshShell.SendKeys "{tab}" End If End Sub Private Sub txtnama_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then Set WshShell = CreateObject("WScript.Shell") WshShell.SendKeys "{tab}" End If End Sub Private Sub txttempat_KeyPress(KeyAscii As Integer) KeyAscii = Asc(UCase(Chr(KeyAscii))) If KeyAscii = 13 Then Set WshShell = CreateObject("WScript.Shell") WshShell.SendKeys "{tab}" End If End Sub [/code]

Gimana ? Mudah atau bingung sob ? Kalau kamu masih bingung lihat saja video tutorialnya berikut ini :








Nah terus gimana mas cara membuat laporannya menggunakan crystal report ? Simak aja video tutorialnya langsung disini ya...






Oke sobat yadishare, semoga artikel dan tutorialnya kali ini bermanfaat buat kita semua ya :) sampai jumpa di tutorial-tutorial selanjutnya. Assalamualaikum wr. wb.

Comments

Popular posts from this blog

Tips Jitu Cara Mengatasi Error Pada Saat Compile Aplikasi Menggunakan Visual Basic 6

Sebenarnya ada banyak sekali nih project yang harus saya kerjakan dikantor. Namun terkadang apa yang kita rencanakan sering kali berbeda dengan kenyataan. Maksud hati ingin focus dulu ke satu project, tapi karena adanya satu dan lain hal, akhirnya terpaksa deh harus melakukan modifikasi dan membuka project lama yang sebenarnya saya sudah malas untuk berhubungan lagi dengannya :) Project ini sudah dibangun dari awal tahun 2000-an, jauh sebelum saya join. Ya intinya saya dapat warisannya lah seperti itu. Di bangun masih dengan menggunakan vb5-vb6 waktu itu. Sekarang sudah tahun 2016. Jadi sudah lama ya sob. Sudah ketinggalan jaman lah kurang lebih. Meskipun sudah tua, tapi menurut saya visual basic tetap menjadi bahasa pemrograman yang masih powerful. Masalah Kompatibilitas Nah masalah terbesar dalam menggunakan program-program lawas seperti itu biasanya ada pada kompatibilitas component-componentnya. Karena hardware dan os yang kita gunakan biasanya akan berubah seiring waktu. Jika soba...

Youtube Tips 2017 | Cara Mengganti Dark Theme

Pada kesempatan ini saya ingin membahas seputar layout youtube terbaru tahun 2017. Yaitu mengenai cara mengganti tema atau theme baru yang bisa kita temui pada saat kita membuka situs youtube. Mungkin fitur baru ini sengaja disediakan oleh google agar kita tidak jenuh atau bosan dengan tampilan youtube yang itu-itu saja. Fitur ini bisa anda aktifkan dan non aktifkan sesuai dengan selera anda kapan pun anda mau. Kalau menurut saya sih cukup keren. Makanya ketika saya tahu kalau mereka menyediakan fitur tersebut, saya langsung tertarik untuk mencobanya. Dan kesan yang saya dapatkan cukup memuaskan. Karena pada dasarnya saya sebagai developer atau programmer memang sudah terbiasa dengan layout bertema gelap seperti itu. Untuk melihat coding-coding php, vb, dan lain-lain lebih mudah untuk membedakan syntax yang satu dengan syntax yang lainnya. Nah jika anda tertarik untuk mencoba dark theme baru tersebut, kalian bisa langsung menggantinya melalui menu setting. Disana akan ada opsi untuk me...

Belajar PHP Itu Menyenangkan (Memahami Syntax Dasar PHP)

Ngga tahu kenapa saya lagi bersemangat sekali nulis artikel tentang php. Padahal sudah malam nih. Sudah jam 22:40. Waktunya tidur karena besok mesti kerja lagi dan ngga boleh kesiangan pula tuk bangun sholat subuh. Mungkin karena saya merasa kalau saya punya hutang kepada sobat yadishare semua bahwa selama ini saya jarang sekali nulis tentang php. Lebih banyak nulis dan bikin video tentang delphi, visual basic, odoo, photoshop, cara bikin video, grafik, database dan lain-lain. Nah berhubung lagi ada kesempatan dan masih diberikan kesehatan sama yang maha kuasa, jadi saya mau cicil saja sharing tentang php nya dari hal-hal yang sangat sederhana sekali ya. Karena untuk memahami materi bahasa pemrograman tertentu terkadang memang tidak mudah. Termasuk mengenai php. Apalagi untuk menguasai banyak bahasa pemrograman pasti tidak akan mudah. Butuh keseriusan dari diri kita masing-masing. Ibaratnya dulu kalau sekolah kita mungkin suka malas belajar matematika, fisika, kimia, dan lain-lain. Ket...