Kamis, 10 November 2016

Membuat Program Sederhana Kombinasi dengan Gambar Menggunakan VB.Net dan MS Access

1 komentar:
Banyak yang minta source code, gimana cara menginput file gambar sekaligus fungsi cari dan edit menggunakan VB.Net dengan database MS Access, disini saya akan memulai langkah-langkah pembuatan projectnya. Pada postingan sebelumnya sudah saya tulis juga artikel tentang perintah insert,edit dan hapus menggunakan VB.Net dan MS Access dimana disana hanya disinggung mengenai modifikasi data dengan format string, sedangkan pada artikel ini akan kita singgung gimana sih… sekalian input file gambar sekaligus. Langsung buka MS Access anda kemudian buat sebuah database, disini saya beri nama BLOB lalu buah sebuah tabel dengan nama PEGAWAI. susunlah field-fieldnya beserta tipe datanya seperti gambar dibawah ini.
Jika sudah selesai langsung buka MS Visual Studio anda, yang saya pake versi 9.0 atau lebih akrabnya VB.Net 2008, buat project dengan nama BLOB_project kemudian simpan. Desainlah form anda seperti gambar dibawah ini
Jangan lupa buat sebuah modul yang berfungsi untuk menyimpan string koneksi ke database yang akan diakses oleh form nantinya dan isinya seperti ini
Module modKoneksi
Public Koneksi As String = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & Application.StartupPath & “\BLOB.mdb”
End Module
Berikut ini adalah isi dari source code yang ada pada form BLOB.

Imports System.IO
Imports System.Data.OleDb

Public Class frmBlob
    Private path As String = ""

    Private Sub btnBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse.Click
        Try
            With ofdPhoto
                .Title = "Browse Gambar"
                .FileName = "Pilih Gambar"
                .Filter = "Type(*.jpg, *.jpeg, *.bmp, *.gif, *.png)|*.jpg; *.jpeg; *.bmp; *gif; *.png"
                .ShowDialog()
                path = .FileName
                picPhoto.Image = Image.FromFile(path)
            End With
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
        End Try
    End Sub

    Private Sub btnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSimpan.Click
        Dim fs As New FileStream(ofdPhoto.FileName, FileMode.OpenOrCreate, FileAccess.Read)
        Dim gambar(fs.Length) As Byte
        Dim Simpan As String = "INSERT INTO PEGAWAI(ID_PEGAWAI,NAMA,ALAMAT,JEN_KEL,PHOTO)" & _
        "VALUES(‘" & txtID.Text & "‘,'" & txtNama.Text & "‘," & _
        "‘" & txtAlamat.Text & "‘,'" & cboJenkel.Text & "‘,@photo)"
        Try
            fs.Read(gambar, 0, CInt(fs.Length))
            fs.Close()
            Dim Conn As New OleDbConnection(Koneksi)
            Conn.Open()
            Dim cmd As New OleDbCommand(Simpan, Conn)
            cmd.Parameters.AddWithValue("@photo", gambar)
            cmd.ExecuteNonQuery()
            MsgBox("Data Berhasil Disimpan!", MsgBoxStyle.Information, "Perhatian")
            btnBatal.PerformClick()
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
        End Try
    End Sub

    Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
        Dim fs As New FileStream(ofdPhoto.FileName, FileMode.OpenOrCreate, FileAccess.Read)
        Dim gambar(fs.Length) As Byte
        Dim Update As String = "UPDATE PEGAWAI SET NAMA='" & txtNama.Text & "‘," & _
        "ALAMAT='" & txtAlamat.Text & "‘,JEN_KEL='" & cboJenkel.Text & "‘," & _
        "PHOTO=@photo WHERE ID_PEGAWAI='" & txtID.Text & "‘"
        Try
            fs.Read(gambar, 0, CInt(fs.Length))
            fs.Close()
            Dim Conn As New OleDbConnection(Koneksi)
            Conn.Open()
            Dim cmd As New OleDbCommand(Update, Conn)
            cmd.Parameters.AddWithValue("@photo", gambar)
            cmd.ExecuteNonQuery()
            MsgBox("Data Berhasil Diperbaiki", MsgBoxStyle.Information, "Perhatian")
            btnBatal.PerformClick()
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
        End Try
    End Sub

    Private Sub btnCari_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCari.Click
        Dim CariPhoto As String = "SELECT PHOTO FROM PEGAWAI WHERE ID_PEGAWAI='" & txtID.Text & "‘"
        Dim CariData As String = "SELECT * FROM PEGAWAI WHERE ID_PEGAWAI='" & txtID.Text & "‘"
        Try
            Dim Conn As New OleDbConnection(Koneksi)
            Conn.Open()
            Dim cmdData As New OleDbCommand(CariData, Conn)
            Dim reader As OleDbDataReader = cmdData.ExecuteReader
            reader.Read()
            If reader.HasRows Then
                txtNama.Text = reader("NAMA")
                txtAlamat.Text = reader("ALAMAT")
                cboJenkel.Text = reader("JEN_KEL")
                'Proses Cari Image Dengan Nilai byte
                Dim cmdPhoto As New OleDbCommand(CariPhoto, Conn)
                Dim gambar As Object = cmdPhoto.ExecuteScalar
                If gambar IsNot DBNull.Value Then
                    Dim byteArray As Byte() = CType(gambar, Byte())
                    Dim ioStream As New IO.MemoryStream(byteArray.Length)
ioStream.Write(byteArray, 0, byteArray.Length – 1)
                    picPhoto.Image = Image.FromStream(ioStream)
                    ioStream.Close()
                    ioStream.Dispose()
                Else
                    MsgBox("Photo Tidak Ditemukan…!", MsgBoxStyle.Exclamation, "Perhatian")
                End If
            Else
                MsgBox("Data Tidak Ditemukan….!", MsgBoxStyle.Exclamation, "Perhatian")
            End If
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
        End Try
    End Sub

    Private Sub btnBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBatal.Click
        txtID.Text = ""
        txtNama.Text = ""
        txtAlamat.Text = ""
        cboJenkel.Text = ""
        picPhoto.Image = Nothing
        txtID.Focus()
    End Sub

    Private Sub btnHapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHapus.Click
        Dim Hapus As String = "DELETE FROM PEGAWAI WHERE ID_PEGAWAI='" & txtID.Text & "‘"
        Try
            Dim Pesan As String = MsgBox("Yakin Akan Menghapus Data dengan ID Pegawai = " & txtID.Text & " ?", MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Konfirmasi")
            If Pesan = vbYes Then
                Dim Conn As New OleDbConnection(Koneksi)
                Conn.Open()
                Dim cmd As New OleDbCommand(Hapus, Conn)
                cmd.ExecuteNonQuery()
                MsgBox("Data Sudah Dihapus…!")
                btnBatal.PerformClick()
            Else
                btnBatal.PerformClick()
                Exit Sub
            End If
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
        End Try
    End Sub
Sekilas mengenai isi source code dari program ini. Maaf jika kurang mengerti karena saya gak sempat memaparkan fungsi dari masing-masing routin  yang ada. Silahkan anda mempelajari sendiri biar ngerti he…he….

Berikut ini capture hasil dari program yang kita bahas.

  
Dan tidak lupa juga saya lampirkan source codenya, dan anda bisa mendownloadnya disini http://www.4shared.com/rar/oocqQdJJ/BLOB_project.html

Semoga bermanfaat…..
, , ,

1 komentar: