Tuesday, March 24, 2015

mengolah data excel dengan vb.net



Excel merupakan salah satu jenis peranti lunak pengolah database. Banyak orang menggunakan excel sebagai media untuk pengolahan data yang mereka butuhkan. Dalam bab ini akan dijelaskan tentang bagaimana cara mengolah data excel dengan menggunakan VB.Net termasuk di dalamnya tentang cara export dan import.

Membuat Project Baru

Tahapan pertama dalam pembuatan aplikasi pengolahan data excel ini adalah membuat project baru dengan langkah sebagai berikut:
1.         Buka visual studio 2008
2.         Klik create project
3.         Tulis nama project “Mengolah Data Excel”
4.         OK

Setelah membuat project baru dan menyimpannya di posisi tertentu, maka akan terbentuk folder project secara otomatis yang di dalamnya terdapat folder ... >> BIN>> DEBUG. Folder inilah yang akan dijadikan tempat menyimpan data excel. 

Kondisi ini sekarang menjadi sebuah pilihan, anda boleh saja membuat data excel dan disimpan di folder yang anda inginkan karena nantinya data excel dapat dicari dengan menggunakan openfiledialog.

Membuat Data Excel

Langkah berikutnya adalah membuat data excel dengan struktur seperti gambar di bawah ini.
Data Barang

Membuat Module Koneksi Ke Excel

Coding module koneksi ke data excel agak sedikit berbeda dengan database access, mysql atau sql server. Untuk membuat module koneksi ini klik menu project >> add module.
Membuat Module Koneksi
Coding :
Imports System.Data.OleDb

Module Module1

    Public CONN As OleDbConnection
    Public CMD As OleDbCommand
    Public DS As New DataSet
    Public DA As OleDbDataAdapter
    Public RD As OleDbDataReader
    Public DT As DataTable

    Sub Koneksi()
        'string koneksi ke data excel
        CONN = New OleDbConnection("provider=Microsoft.ace.OLEDB.12.0;data source=book1.xlsx;Extended Properties=Excel 8.0;")
        CONN.Open()
    End Sub
End Module

Form Pengolahan Data Excel
Logika dan proses program dalam form barang mirip seperti yang telah dibahas pada bab sebelumnya.
Form Barang


Coding :
Imports System.Data.OleDb


Public Class Form1

    Sub Kosongkan()
        TextBox1.Clear()
        TextBox2.Clear()
        TextBox1.Focus()
    End Sub

    Sub TampilGrid()
        DA = New OleDbDataAdapter("select * from [sheet1$]", CONN)
        DS = New DataSet
        DA.Fill(DS)
        DGV.DataSource = DS.Tables(0)
        DGV.ReadOnly = True
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Call Koneksi()
        Call TampilGrid()
        Call Kosongkan()
    End Sub

    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        TextBox1.MaxLength = 5
        If e.KeyChar = Chr(13) Then
            Call Koneksi()
            CMD = New OleDbCommand("Select * from [sheet1$] where val(Kode)='" & TextBox1.Text & "'", CONN)
            RD = CMD.ExecuteReader
            RD.Read()
            If Not RD.HasRows Then
                TextBox2.Text = ""
                TextBox2.Focus()
            Else
                TextBox2.Text = RD.Item("NAMA")
                TextBox2.Focus()
            End If
        End If
    End Sub

    Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
        TextBox2.MaxLength = 30
        If e.KeyChar = Chr(13) Then Button1.Focus()
    End Sub



    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If TextBox1.Text = "" Or TextBox2.Text = "" Then
            MsgBox("Data belum lengkap")
            Exit Sub
        Else
            Call Koneksi()
            CMD = New OleDbCommand("Select * from [sheet1$] where val(Kode)='" & TextBox1.Text & "'", CONN)
            RD = CMD.ExecuteReader
            RD.Read()
            If Not RD.HasRows Then
                Dim simpan As String = "insert into [sheet1$] values ('" & TextBox1.Text & "','" & TextBox2.Text & "')"
                CMD = New OleDbCommand(simpan, CONN)
                CMD.ExecuteNonQuery()
            Else
                Dim edit As String = "update [sheet1$] set NAMA='" & TextBox2.Text & "' where val(Kode)='" & TextBox1.Text & "'"
                CMD = New OleDbCommand(edit, CONN)
                CMD.ExecuteNonQuery()
            End If

            Call TampilGrid()
            Call Kosongkan()
        End If
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        If TextBox1.Text = "" Then
            MsgBox("val(Kode) Barang masih kosong, silakan diisi dulu")
            TextBox1.Focus()
            Exit Sub
        Else
            If MessageBox.Show("Yakin akan dihapus..?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
                Dim hapus As String = "delete * from [sheet1$] where val(Kode)='" & TextBox1.Text & "'"
                CMD = New OleDbCommand(hapus, CONN)
                CMD.ExecuteNonQuery()
                Call TampilGrid()
                Call Kosongkan()
            Else
                Call Kosongkan()
            End If
        End If
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Call Kosongkan()
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Me.Close()
    End Sub

    Private Sub TextBox6_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox6.TextChanged
        CMD = New OleDbCommand("select * from [sheet1$] where NAMA like '%" & TextBox6.Text & "%'", CONN)
        RD = CMD.ExecuteReader
        RD.Read()
        If RD.HasRows Then
            DA = New OleDbDataAdapter("select * from [sheet1$] where NAMA like '%" & TextBox6.Text & "%'", CONN)
            DS = New DataSet
            DA.Fill(DS, "ketemu")
            DGV.DataSource = DS.Tables("ketemu")
            DGV.ReadOnly = True
        Else
            MsgBox("data tidak ditemukan")
        End If
    End Sub

End Class

Coba anda perhatikan, begitu mudahnya mengolah data excel, perbedaannya hanya pada string koneksi dan penyebutan nama tabel diganti dengan nama sheet.

5 comments

dgv itu dibuat deklarasi baru kah?

Oea mas mw nanya.. klo kode untuk input data hanya fokus satu cell saja. Misalkan fokus pada cell "A1" .

Hapusnya gmna ya mas ? Ko gk bisa ya

Hapusnya gagal brow


EmoticonEmoticon