Yang ini sebenernya rada aneh, tapi gpp deh buat jawab pertanyaan dari Panji Abdi di artikel http://rani-irsan.blogspot.com/2015/04/vbnet-memilih-file-excel-untuk.html dan
http://rani-irsan.blogspot.com/2014/04/vb6-menampilkan-data-dari-excel-ke.html
Yaitu tentang menggunakan ADODB Recordset di VB.NET dan digunakan untuk menampilkan data dari file Excel ke DataGridView.
Pertama2 Add Reference dulu dengan cara seperti gambar di bawah:
Pada dialog Add Reference pilih Tab COM, kemudian pilih Microsoft ActiveX Data Object 2.7 Library, dan klik OK.
UI yang kita pakai simple aja cuman Form dan DataGridView.
Code:
Imports ADODB
Imports System.Data.OleDb
Public Class frmADODB
Dim xConn As ADODB.Connection
Dim rsTable As ADODB.Recordset
Dim rsExcel As ADODB.Recordset
Dim strExcel As String
Private Sub Open_Excel()
xConn = New ADODB.Connection
With xConn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source=d:\karyawan.xls;" & _
"Extended Properties=Excel 12.0;"
.Open()
End With
rsExcel = New ADODB.Recordset
strExcel = "SELECT * FROM [Sheet1$]"
With rsExcel
.CursorLocation = CursorLocationEnum.adUseClient
.Open(strExcel, xConn, CursorTypeEnum.adOpenKeyset, _
LockTypeEnum.adLockReadOnly)
.ActiveConnection = Nothing
End With
Me.DataGridView1.DataSource = RecordSetToDataTable(rsExcel)
rsExcel.Close()
xConn.Close()
End Sub
Public Function RecordSetToDataTable( _
ByVal objRS As ADODB.Recordset) As DataTable
Dim objDA As New OleDbDataAdapter()
Dim objDT As New DataTable()
objDA.Fill(objDT, objRS)
Return objDT
End Function
Private Sub frmADODB_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Open_Excel()
End Sub
End Class
Mari kita coba:
Catatan:
Waktu nyoba sempet error terus provider not found, ternyata provider nya harus pake yang buat Excel 2007 keatas yaitu "Microsoft.ACE.OLEDB.12.0"
Click here if you like this article.
17 Comments
maaf udah ngerepotin, mbak.. :)
trus masukin aja code buat save ke database nya di event yang ada di grid nya. Klo pengen saved tiap edit cell berati di event _CellEndEdit
Di artikel ini kan ada contoh nya gimana pakai ADODB di VB.NET
Dipelajari aja dulu gimana saving pake ADODB yang di VB6, kayaknya cara nya ga akan jauh beda.
Klo artikel spesifik tentang itu rani blom punya :)
menggunakan perulangan?
cn.ConnectionString = "Provider=SQLNCLI11;
mbak, mau nanya gmana untuk mengatur posisi objek yg di dalam form ikut berubah juga jika form di resize , selain menggunakan anchor mbak..
apakah menggunakan coding location mbak?
Private Sub frm_Attendance_Resize(sender As Object, e As EventArgs) Handles Me.Resize
If Me.WindowState < FormWindowState.Minimized Then
Me.dgv_data.Size = New Size(520, 220)
btn_save.Location = New Point(47, 382)
btn_cancel.Location = New Point(230, 382)
btn_import.Location = New Point(410, 95)
Else
Me.dgv_data.Size = New Size(900, 500)
btn_save.Location = New Point(53, 640)
btn_cancel.Location = New Point(230, 640)
btn_import.Location = New Point(785, 98)
End If
End Sub
Udah dicoba blom itu code nya?
Tapi kayak nya klo input value size nya angka statis kayak gitu sih ga keliahatan berubah kecuali ukuran nya pake persentasi dari ukuran form
Misal nya dgv_data.Width = 0.9 * Me.Width
klo bisa pake anchor kenapa harus pake code itu?
check this:
http://rani-irsan.blogspot.com/2015/04/vbnet-mengatur-layout-control-tanpa.html