Back to VB6 dulu hehe...
Lagi pengen bahas gimana cara nya mengambil data dari excel kemudian memuatnya dalam ADODB recorset dan menampilkan pada datagrid.
Sebagai contoh kita punya file excel bernama sample.xls (inget .xls yah bukan .xlsx karena tahun 1998 excel 2007 belom lahir heuheu)
Buat sebuah project visual basic 6 standard, kemudian tambahkan common dialog dan datagrid control pada toolbox.
Tambahkan juga reference Microsoft ActiveX Data Object.
Design UI:
!!! UPDATE
Mohon maaf klo kurang jelas, lstTable itu control ListBox yang rani kasih nama lstTable
Code:
Option Explicit
Dim xConn As ADODB.Connection
Dim rsTable As ADODB.Recordset
Dim rsExcel As ADODB.Recordset
Dim strExcel As String
Private Sub Open_Excel(FilePath As String)
On Error GoTo err_Handler
Set xConn = New ADODB.Connection
With xConn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & FilePath & _
";Extended Properties=Excel 8.0;"
.Open
End With
Exit Sub
err_Handler:
MsgBox "Error on Open_Excel :" & Err.Number & " " & Err.Description
End Sub
Private Sub List_Table()
On Error GoTo err_Handler
lstTable.Clear
Open_Excel Me.txtFile.Text
Set rsTable = xConn.OpenSchema(adSchemaTables)
Do While Not rsTable.EOF
lstTable.AddItem rsTable.Fields("TABLE_NAME").Value
rsTable.MoveNext
Loop
Set rsTable = Nothing
xConn.Close
If Not Me.lstTable.ListCount = 0 Then
Me.lstTable.ListIndex = 0
Data_Excel Me.lstTable.Text
End If
Exit Sub
err_Handler:
MsgBox "Error on Open_Excel :" & Err.Number & " " & Err.Description
End Sub
Private Sub Data_Excel(Sheet As String)
Open_Excel Me.txtFile.Text
Set rsExcel = New ADODB.Recordset
strExcel = "SELECT * FROM [" & Sheet & "]"
With rsExcel
.CursorLocation = adUseClient
.Open strExcel, xConn, adOpenKeyset, adLockReadOnly
.ActiveConnection = Nothing
End With
Set Me.grdExcel.DataSource = rsExcel
xConn.Close
End Sub
Private Sub cmdBrowse_Click()
dlgOpen.Filter = "Excel Files (*.xls)|*.xls"
dlgOpen.ShowOpen
Me.txtFile.Text = dlgOpen.FileName
End Sub
Untuk load data excel, me list table/sheet, dan menampilkan di datagrid.
Private Sub cmdLoad_Click()
If txtFile.Text = "" Then _
MsgBox "Pilih file excel untuk proses import": Exit Sub
If LCase(Right$(txtFile.Text, 4)) <> ".xls" Then _
MsgBox "File harus dalam format Excel(.xls)": Exit Sub
List_Table
End Sub
Private Sub lstTable_Click()
If Not Me.lstTable.ListCount = 0 Then
Data_Excel Me.lstTable.Text
End If
End Sub
Private Sub txtFile_Change()
lstTable.Clear
Set grdExcel.DataSource = Nothing
End Sub
Private Sub cmdExit_Click()
Unload Me
End Sub
Runtime:
Click here if you like this article.
Baca Juga:
VB6: Export to Excel
102 Comments
Sukses buat mbak rani irsan...
" error on open_excel;0 "
muncul kaya gitu..
Mohon bantuannya..
Terima kasih sangat membantu ilmunya
di pc atau laptop nya sudah terinstall excel belum?
hhehehehhe..
Sudah lah mba..
Takutnya syntax nya yang salah..
pada lst
lstTable
Set grdExcel.DataSource = Nothing
End Sub
error nya dsini mbak...
gmna solusi nya mbak...
pnya aku ndk mau d browse...
mhon bntuan nya....
gmana solsi nya mbak..?
Private Sub txtFile_Change()
lstTable
Set grdExcel.DataSource = Nothing
End Sub
itu koq code baris kedua nya cuman "lstTable"?
kok d load ga bisa, tulisannya
"method or data member not found"
lalu oleh system d drag bagian .ListCount dibagian private sub listtable.
kalo misalkan memang menggunakan listtable, itu menambahkan pada tollbox dengan component yang mana? di tollbox standar tidak ada list table
Private Sub cmdBrowse_Click()
dlgOpen.Filter = "Excel Files (*.xls)|*.xls"
dlgOpen.ShowOpen
Me.txtFile.Text = dlgOpen.FileName
End Sub
eror di dlgOpen
variable not define
Private Sub txtFile_Change()
lstTable.Clear
Set grdExcel.DataSource = Nothing
End Sub
di grdExcel
Imports ADODB
Public Class Form1
Dim xConn As ADODB.Connection
Dim rsTable As ADODB.Recordset
Dim rsExcel As ADODB.Recordset
Dim strExcel As String
Private Sub Open_Excel(FilePath As String)
xConn = New ADODB.Connection
With xConn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & FilePath & _
";Extended Properties=""Excel 8.0;HDR=YES"";"
.Open()
End With
Exit Sub
End Sub
Private Sub List_Table()
Open_Excel(Me.txt_Open.Text)
rsTable = xConn.OpenSchema(SchemaEnum.adSchemaTables)
Do While Not rsTable.EOF
lst_Table.Items.Add(rsTable.Fields("TABLE_NAME").ToString())
rsTable.MoveNext()
Loop
rsTable = Nothing
xConn.Close()
If Not Me.lst_Table.Items.Count = 0 Then
Me.lst_Table.Items.IndexOf(0)
Data_Excel(Me.lst_Table.Text)
End If
Exit Sub
End Sub
Private Sub Data_Excel(Sheet As String)
Open_Excel(Me.txt_Open.Text)
rsExcel = New ADODB.Recordset
strExcel = "SELECT * FROM [" & Sheet & "]"
With rsExcel
.CursorLocation = ADODB.CursorLocationEnum.adUseClient
.Open(strExcel, xConn, CursorTypeEnum.adOpenKeyset, LockTypeEnum.adLockReadOnly)
.ActiveConnection = Nothing
End With
Me.dgv_Sheet.DataSource = rsExcel
xConn.Close()
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub btn_Browse_Click(sender As Object, e As EventArgs) Handles btn_Browse.Click
With dlg_Open
.FileName = String.Empty
.InitialDirectory = "C:\"
.Title = "Open Excel File"
'supaya tersaring file excel yang bisa dipilih.
.Filter = "Excel 97-2003|*.xls|Excel 2010|*.xlsx"
End With
dlg_Open.ShowDialog()
Me.txt_Open.Text = dlg_Open.FileName
End Sub
Private Sub btn_Load_Click(sender As Object, e As EventArgs) Handles btn_Load.Click
If txt_Open.Text = " " Then _
MsgBox("Pilih file excel untuk proses import") : Exit Sub
List_Table()
dgv_Sheet.DataSource = rsExcel
End Sub
Private Sub lst_Table_Click(sender As Object, e As EventArgs) Handles lst_Table.Click
Data_Excel(Me.lst_Table.Text)
End Sub
Private Sub txtFile_Change()
dgv_Sheet.DataSource = Nothing
End Sub
End Class
tetapi tidak bisa di buka mbak, ada masalah saat ditekan button load nya... property is not foud katanya mbak.. kiranya mbak mau bantu,, terima kasih..
http://rani-irsan.blogspot.com/2015/04/vbnet-memilih-file-excel-untuk.html
http://rani-irsan.blogspot.com/2011/04/2-menampilkan-data-di-datagrid.html
Export Excel nya lihat disini:
http://rani-irsan.blogspot.com/2011/07/vb6-export-to-excel.html
aku pakai vb 6.0 databasenya mysql server..
mohon pencerahannya..
-Terima Kasih-
klo insert nya mah udah tau kan?
kan dimasukan kodingnya ditombol simpan tapi listingnya itu belum ketemu jadi belum bisa disimpan ke mysql server aku
http://rani-irsan.blogspot.com/2012/01/5-pengolahan-data-input-data-baru.html
tapi artikel nya serial, jadi buat paham nya baca dari awal:
http://rani-irsan.blogspot.com/2014/06/tutorial-visual-basic-6-vb6-dan-mysql.html
aku copas codingnya tapi compile error: invalid outside procedure salahnya di server mba debug di ip servernya padahal IP sama id nya sudah sama..
Dim oConn As MYSQL_CONNECTION
'Lalu buat 4 buah variable string untuk memuat data-data koneksi ke database server
Option Explicit
Dim server As String 'variabel string untuk server database
Dim UserDB As String 'variabel string untuk user login mysql
Dim password As String 'variabel string untuk password mysql
Dim database As String 'variabel string untuk namadatabase
'Tentukan nilai-nilai 4 variable tersebut pada event Form_load
server = "10.120.205.20"
UserDB = "sa"
password = ""
database = "revisi"
'Buka koneksi dengan code berikut:
Set oConn = New MYSQL_CONNECTION
oConn.OpenConnection server, UserDB, password, database
'Tambahkan pesan yang menyatakan koneksi telah terbuka:
MsgBox "Anda telah terkoneksi dengan database " & database
'Tutup koneksi pada event Form_QueryUnload
oConn.CloseConnection
Set oConn = Nothing
dan yg pengolahan data=>input data baru itu kan kalau kita input di textbox klik simpan akan tampil ke datagrid..
kalau yg aku maksud ini gini mba..
blog inikan tentang "VB6: Menampilkan Data dari Excel ke Datagrid" nah itu aku sudah berhasil dan sekarang kalau data excel sudah tampil di datagrid mau aku simpan di mysql server aku gmn?
dan loopingnya bagaimana ya mba..
terima kasih sudah mau membalas, mohon pencerahannya ya mba :)
klo gitu rani anggap aja Andi udah tau gimana cara saving ke database mysql yah
looping nya gini
Dim i As Integer
rsExcel.MoveFirst
For i = 0 to rsExcel.Recordcount-1
'Masukin code buat insert record nya disini
'buat ambil value dari recordset rsExcel!namafield
Next
Happy coding...
If ttgl.Text = "" Or tjam.Text = "" Or tmesin.Text = "" Or tid.Text = "" Or tnama.Text = "" Then
MsgBox "Data Belum Lengkap Terinput!", vbExclamation, ".:: Informasi ::."
Else
Adodc2.Recordset.AddNew
Adodc2.Recordset!urut = turut.Caption
Adodc2.Recordset!tgl = ttgl.Text
Adodc2.Recordset!jam = tjam.Text
Adodc2.Recordset!mesin = tmesin.Text
Adodc2.Recordset!ID = tid.Text
Adodc2.Recordset!nama = tnama.Text
Adodc2.Recordset.Update
MsgBox "Data Telah Tersimpan", vbOKOnly + vbInformation, "Info"
End If
tapi kalau datagrid ke mysql aku msh blm bisa mba salah terus mba..mohon pencerahannya maaf ya mba bawel aku gregetan soalnya kalau tidak ketemu hehe
rsExcel!urut ---> urut disini nama field recordset excel nya.
Private Sub csimpan_Click()
Dim i As Integer
rsExcel.MoveFirst
For i = 0 To rsExcel.RecordCount - 1
'Masukin code buat insert record nya disini
'buat ambil value dari recordset rsExcel!namafield
Adodc2.Recordset.AddNew
Adodc2.Recordset!keypass = rsExcel!keypass
Adodc2.Recordset!UserId = rsExcel!UserId
Adodc2.Recordset!nama = rsExcel!nama
Adodc2.Recordset!password = rsExcel!password
Adodc2.Recordset!tgl = rsExcel!tgl
Adodc2.Recordset!hita = rsExcel!hita
Adodc2.Recordset!byk = rsExcel!byk
Adodc2.Recordset.Update
MsgBox "Data Telah Tersimpan", vbOKOnly + vbInformation, "Info"
Next
End Sub
tapi masih error mba coba kalau di artikel ini kan ada: kodewarna, namawarna kalau disimpan listingnya bagaimana?
terima kasih
kayak nya error primary key ya?
setelah update mestinya nambah movenext supaya baca record sebelum nya
Adodc2.Recordset.Update
rsExcel.MoveNext
itu gmn mba?
cek lagi code nya
next nya kehapus ato gimana
Private Sub csimpan_Click()
Dim i As Integer
rsExcel.MoveFirst
For i = 0 To rsExcel.RecordCount - 1
'Masukin code buat insert record nya disini
'buat ambil value dari recordset rsExcel!namafield
Adodc2.Recordset.AddNew
Adodc2.Recordset!keypass = grdExcel.Columns(0)
Adodc2.Recordset!oto = grdExcel.Columns(1)
Adodc2.Recordset!UserId = grdExcel.Columns(2)
Adodc2.Recordset!nama = grdExcel.Columns(3)
Adodc2.Recordset!Password = grdExcel.Columns(4)
Adodc2.Recordset!team = grdExcel.Columns(5)
Adodc2.Recordset!jml = grdExcel.Columns(6)
Adodc2.Recordset!nama2 = grdExcel.Columns(7)
Adodc2.Recordset!noma = grdExcel.Columns(8)
Adodc2.Recordset!tgl = grdExcel.Columns(9)
Adodc2.Recordset!hita = grdExcel.Columns(10)
Adodc2.Recordset!byk = grdExcel.Columns(11)
Adodc2.Recordset!byk3 = grdExcel.Columns(12)
Adodc2.Recordset.Update
'MsgBox "Data Telah Tersimpan", vbOKOnly + vbInformation, "Info"
rsExcel.MoveNext
Next
End Sub
tapi masih debug object variable or with block variable not set
yang di artikel ini mau disave seperti apa mba listingnya agar semua datanya tersimpan semua di database.
code nya juga berubah ngga ambil lagi dari recodser rsExcel, rsExcel.MoveFirst dan move next nya jadi ga perlu klo ambil nilai dari grid
maaf klo untuk odbc mysql rani blom bisa bantu debuging, karena rani ga pake itu.
terus kalau aku mau membuat koneksi bagaimana dan dimana?
jadi kalau aku butuhkan koneksi tgl dipagil aja tanpa hrs ngetik kodingnya lagi..
dan koding sql untuk insert table di datagrid gmn ya mba?
http://rani-irsan.blogspot.com/2011/04/koneksi-visual-basic-6-vb6-mysql.html
dan ikuti langkah nya dari awal artikel
Dim rsExcel As ADODB.Recordset
Dim i As Integer
Private Sub csimpan_Click()
Dim i As Integer
rsExcel.MoveFirst
For i = 0 To rsExcel.RecordCount - 1
'Masukin code buat insert record nya disini
'buat ambil value dari recordset rsExcel!namafield
Adodc2.Recordset.AddNew
Adodc2.Recordset!termid = grdExcel.Columns(0)
Adodc2.Recordset!lokasi = grdExcel.Columns(1)
Adodc2.Recordset!total = grdExcel.Columns(2)
Adodc2.Recordset!out = grdExcel.Columns(3)
Adodc2.Recordset.Update
rsExcel.MoveNext
Next
MsgBox "Data Telah Tersimpan", vbOKOnly + vbInformation, "Info"
End Sub
makasih banyak ya mba pencerahannya..
mohon pencerahannya
http://rani-irsan.blogspot.com/2015/06/vb6-ms-access-import-dari-csv-file-part.html
dan code nya jalan baik2 aja
browse file dengan commondialog memang hanya untuk memilih file.
jadi focus nya ke browse tapi ke procedure untuk menampilkan csv nya
dan procedure nya emang beda sama excel
coba dipahami fungsi dari masing2 codenya supaya tau salah nya dimana
tiap error juga ada error message nya kan? sebagai gambaran error nya kenapa
Option Explicit
'Untuk menampilkan CSV
Dim rsTemp As ADODB.Recordset
Dim strFileName As String
Dim fnum As Integer
Dim strFileValue As String
Dim lines() As String
Dim one_line() As String
Dim num_rows As Long
Dim num_cols As Long
Dim r As Long
Dim c As Long
'Koneksi ADO Ms Access
Dim oConn As New ADODB.Connection
Dim strConn As String
Dim rsData As ADODB.Recordset
Dim SQL As String
Dim i As Integer
Sub Open_Connection()
Set oConn = New ADODB.Connection
oConn.ConnectionString = strConn
oConn.Open
End Sub
Sub Load_Data()
Open_Connection
Set rsData = New ADODB.Recordset
SQL = "SELECT * FROM Table1"
With rsData
.CursorLocation = adUseClient
.Open SQL, oConn, adOpenDynamic, adLockOptimistic
.ActiveConnection = Nothing
End With
Set DataGrid2.DataSource = rsData
oConn.Close
End Sub
Private Sub Form_Load()
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\latihan.mdb;" & _
"Persist Security Info=False"
Load_Data
Me.Caption = "Import Data Item"
Label1.Caption = "Delimiter"
With Combo1
.AddItem ","
.AddItem ";"
.ListIndex = 0
End With
Text1.Text = ""
Text1.Locked = True
Command1.Caption = "Browse..."
DataGrid1.Caption = "Data CSV"
Command2.Caption = "Begin Import!"
Command2.Enabled = False
DataGrid2.Caption = "Data Access"
End Sub
Sub Data_Temp(arr() As String)
Set rsTemp = New ADODB.Recordset
For i = 0 To UBound(arr)
rsTemp.Fields.Append arr(i), adVarChar, 255, adFldIsNullable
Next
rsTemp.Open
Set DataGrid1.DataSource = rsTemp
End Sub
Private Sub Command1_Click()
CommonDialog1.Filter = "Comma Delimited (*.csv)|*.csv"
CommonDialog1.ShowOpen
Text1.Text = CommonDialog1.FileName
If Me.Text1.Text = "" Then Exit Sub
strFileName = Text1.Text
' mengambil isi file
fnum = FreeFile
Open strFileName For Input As fnum
strFileValue = Input$(LOF(fnum), #fnum)
Close fnum
' memecah baris ke variable lines.
lines = Split(strFileValue, vbCrLf)
' jumlah baris
num_rows = UBound(lines)
'header/nama kolom
one_line = Split(lines(0), Me.Combo1.Text)
num_cols = UBound(one_line)
Data_Temp one_line
' input nilai ke recordset
For r = 1 To num_rows - 1
rsTemp.AddNew
one_line = Split(lines(r), Combo1.Text)
For c = 0 To num_cols
rsTemp.Fields(c).Value = one_line(c)
Next
rsTemp.Update
Next
rsTemp.MoveFirst
Command2.Enabled = True
End Sub
Sub RunQuery(sSQL As String)
Dim cmd As New ADODB.Command
Set cmd = New ADODB.Command
With cmd
.ActiveConnection = strConn
.CommandType = adCmdText
.CommandText = sSQL
.Execute
End With
End Sub
Private Sub Command2_Click()
On Error GoTo errHandler
rsTemp.MoveFirst
For i = 0 To rsTemp.RecordCount - 5
RunQuery "INSERT INTO Table1 " & _
"(Tanggal, Waktu, Mode Inverse, Iset, I sistem, Waktu Trip) VALUES " & _
"('" & rsTemp.Fields(0).Value & "', " & _
"'" & rsTemp.Fields(1).Value & "', " & _
"'" & rsTemp.Fields(2).Value & "', " & _
"'" & rsTemp.Fields(3).Value & "', " & _
"'" & rsTemp.Fields(4).Value & "', " & _
"'" & rsTemp.Fields(5).Value & "')"
rsTemp.MoveNext
Next
rsTemp.MoveFirst
MsgBox "Proses Import Selesai"
Load_Data
Exit Sub
errHandler:
MsgBox "Error on Import: " & Err.Description
End Sub
mohon di koreksi mbak, masih baru pegang vb nih hehe
coba lihat di bagian ini
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\latihan.mdb;" & _
"Persist Security Info=False"
nama database yang digunakan apa? disimpannya dimana?
klo rani nulis App.Path & "\latihan.mdb;"
karena file database access nya berada satu folder dengan file project/exe nya
dan nama file database nya latihan.mdb
Private Sub cmdBrowse_Click()
dlgOpen.Filter = "Excel Files (*.xlsx)|*.xlsx" <========
dlgOpen.ShowOpen
Me.txtfile.Text = dlgOpen.FileName
End Sub
Private_sub cmdBrowse_click
dlgOpen.filter "excel files(*.xls)|*.xls"
DlgOpen.showopen
Me.txtfile.text = dlgOpen.filename
Itu jalan keluarnya gimana mba?
Tolong bales:)
By:innarotun naja
Terima kasih,,:)
Error disini knapa ya mba?
masih baru belajar
terima kasih
Dim arr(3, 3) As String
Private Sub Command1_Click()
arr(0, 0) = 1
arr(0, 1) = 2
arr(0, 2) = 3
arr(1, 0) = 4
arr(1, 1) = 5
arr(1, 2) = 6
arr(2, 0) = 7
arr(2, 1) = 8
arr(2, 2) = 9
For i = 0 To 2
kal = ""
For j = 0 To 2
kal = kal & arr(i, j) & " "
Next j
List1.AddItem kal
Next i
End Sub
saya bisa tampilkan di list box. tapi kalo mau tampilkan di datagrid bagaimana?
Cuman udah pake buat beberapa keperluan contoh nya waktu nampilin data mysql di artikel ini:
http://rani-irsan.blogspot.co.id/2011/04/2-menampilkan-data-di-datagrid.html
coba perhatikan di bagian ini:
Set rsData = New ADODB.Recordset
rsData.Fields.Append rsMySQL.Fields(0).Name, adVarChar, 10, adFldIsNullable
rsData.Fields.Append rsMySQL.Fields(1).Name, adVarChar, 50, adFldIsNullable
rsData.Open
data dari excel kemudian ditampilkan di datagrid contohnya ada di artikel ini
nah sebelum ditampilkan di grid kan data nya ditampung dulu ke sebuah recordset yang nama nya rsExcel
kita bisa otak atik data pakai recordset ini, sebagai pembanding buat lagi temporary recordset
cara nya disini: http://rani-irsan.blogspot.co.id/2017/01/vb6-temporary-recordset.html
sebagai contoh primary key buat cek double nya seperti artikel pakai "kodewarna"
kita buat 2 buah temporary recodset:
- rsClean --> untuk menampung data tanpa double
- rsDouble --> untuk menampung hanya data double
kemudian cek dan add dengan looping, kira2 code nya seperti ini
Dim r As Integer
rsExcel.MoveFirst
For r = 0 To rsExcel.RecordCount - 1
If rsClear.RecordCount = 0 Then
rsClear.AddNew
rsClear!kodewarna = rsExcel!kodewarna
rsClear!namawarna = rsExcel!namawarna
rsClear.Update
Else
rsClear.MoveFirst
rsClear.Find "kodewarna = '" & rsExcel!kodewarna & "'"
If Not rsClear.EOF Then
rsDouble.AddNew
rsDouble!kodewarna = rsExcel!kodewarna
rsDouble!namawarna = rsExcel!namawarna
rsDouble.Update
Else
rsClear.AddNew
rsClear!kodewarna = rsExcel!kodewarna
rsClear!namawarna = rsExcel!namawarna
rsClear.Update
End If
End If
rsExcel.MoveNext
Next
Set DataGrid2.DataSource = rsClear
Set DataGrid3.DataSource = rsDouble
silahkan disesuaikan
coba lihat di gambar yang ini:
http://3.bp.blogspot.com/-WVDiaPV_j7A/U05H8b-oz9I/AAAAAAAAB6E/KSXk4k6KHUA/s1600/vbexcel4.png
di sudut kanan atas itu control CommonDialog yang diberi nama dlgOpen.
@streetfire: saya belum pernah pake DbGrid.
Misal kolumn A diisi dengan kode barang, kolumn B dengan nama barang.
Kemudian hanya ingin menampilkan data kode barang yang ada huruf "G" saja
Contoh:
rsExcel.Filter = "kodewarna='K%'"
untuk memfilter kode warna yang diawali huruf K saja.
Kenapa saat saya klik load ada eror disini
Private Sub cmdLoad_Click()
If txtFile.Text = "" Then _
MsgBox "Pilih file excel untuk proses import": Exit Sub
If LCase(Right$(txtFile.Text, 4)) <> ".xls" Then _
MsgBox "File harus dalam format Excel(.xls)": Exit Sub
List_Table
End Sub
Ada keterangan "block if without end if"
coba dicek lagi penulisan underscore _ nya udah bener apa belum.
sebenernya rani pakai underscore itu supaya mudah copy paste code aja.
tapi copy paste pun tetep harus paham code itu buat apa.
klo aufik mau bikin satu baris aja langsung.
If txtFile.Text = "" Then MsgBox "Pilih file excel untuk proses import": Exit Sub
If LCase(Right$(txtFile.Text, 4)) <> ".xls" Then MsgBox "File harus dalam format Excel(.xls)": Exit Sub
Private Sub txtFile_Change()
lstTable.Clear
Set grdExcel.DataSource = Nothing
End Sub
di grdExcel errornya object variable or with block variable not set