16 April 2014


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

88 comments:

Ahmad Fadholi said...

Luar biasa mbak kita yang satu ini, sudah lama tidak pantengan blog ini. Sekali mantengin eh nambah ilmu lagi.

Sukses buat mbak rani irsan...

suriken said...
This comment has been removed by the author.
suriken said...

Mw nanya, saya udah buat tapi ketika di jalankan Error mas..
" error on open_excel;0 "
muncul kaya gitu..
Mohon bantuannya..
Terima kasih sangat membantu ilmunya

rani irsan said...

waduh mba suriken, koq aku dipanggil mas :p

di pc atau laptop nya sudah terinstall excel belum?

suriken said...

Sory mba.. kirain cowo..
hhehehehhe..
Sudah lah mba..


Takutnya syntax nya yang salah..

kage nokishi said...

punya file nya gk? punya q eror
pada lst

rani irsan said...

erroe nya gimana?

aNaK KoS EnTerTaiNmEnT said...

Private Sub txtFile_Change()
lstTable
Set grdExcel.DataSource = Nothing
End Sub
error nya dsini mbak...
gmna solusi nya mbak...
pnya aku ndk mau d browse...
mhon bntuan nya....

aNaK KoS EnTerTaiNmEnT said...

pnya saya ndk mau d browse mbak...
gmana solsi nya mbak..?
Private Sub txtFile_Change()
lstTable
Set grdExcel.DataSource = Nothing
End Sub

rani irsan said...

error nya kayak gimana?message nya?
itu koq code baris kedua nya cuman "lstTable"?

I my me mine said...

mba, bisa bagi filenya?? gagal terus nih nyobanya

rani irsan said...

klo boleh tau gagal nya gimana ya?

I my me mine said...

yg ad tulisan lsttable itu sebenarnya listbox, textbox, atau memang listtable.

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

rani irsan said...

itu control ListBox yang aku kasih nama lstTable

faisal saleh said...

tlg donk erorr disini
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

rani irsan said...

Jangan lupa buat nambahin control common dialog dan beri nama dlgOpen :)

faisal saleh said...

error lagi disini mba

Private Sub txtFile_Change()
lstTable.Clear
Set grdExcel.DataSource = Nothing
End Sub

di grdExcel

faisal saleh said...

udah sukses mba berhasil mkash sudah membantu

I my me mine said...

langsung sukses mba, terimakasih banyak,

Panji Abdi said...

saya ingin nanya mbak, saya ingin menampilkan data gridview dari excel ke vb.net tetapi menggunakan adodb ... bagaiman ya mbak? ini listing saya :
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..

rani irsan said...

klo buat VB.NET referensi nya disini
http://rani-irsan.blogspot.com/2015/04/vbnet-memilih-file-excel-untuk.html

faisal saleh said...

mba,, klw eksport data ke excel gmn ya pake database mysql di vb6

rani irsan said...

Narik data MySQL nya lihat disini:
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

Andi Kandini said...

mba kalau datanya sudah berhasil tampil ke data grid terus aku mau simpan semuanya ke mysql server gmn mba?
aku pakai vb 6.0 databasenya mysql server..

mohon pencerahannya..
-Terima Kasih-

rani irsan said...

@andi: rsExcel nya di looping aja trus masukin procedure buat insert nya dalam looping
klo insert nya mah udah tau kan?

Andi Kandini said...

aku ga tau mba listing atau kodingnya itu gimana?
kan dimasukan kodingnya ditombol simpan tapi listingnya itu belum ketemu jadi belum bisa disimpan ke mysql server aku

rani irsan said...

klo contoh code buat insert data ke mysql sih ada disini:
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

Andi Kandini said...

aku sudah baca dari awal tapi ko vb 6.0 aku untuk referencesnya tidak ada VB MySQL Direct v1.0?

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 :)

rani irsan said...

oh ya ya.... maaf klo jawaban nya ga ke fokus ke artikel ^_^
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...

Andi Kandini said...

aku biasanya save dari textbox ke database mba se3perti ini:

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

rani irsan said...

Adodc2.Recordset!urut = rsExcel!urut

rsExcel!urut ---> urut disini nama field recordset excel nya.

Andi Kandini said...

aku sudah coba mba jadi begini:

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

rani irsan said...

kodewarna dan namawarna itu nama field di contoh yang rani bikin, tinggal disesuaikan aja.
kayak nya error primary key ya?
setelah update mestinya nambah movenext supaya baca record sebelum nya
Adodc2.Recordset.Update
rsExcel.MoveNext

Andi Kandini said...

sekarang compile errornya: for without next..

itu gmn mba?

rani irsan said...

looping nya kan pake for next
cek lagi code nya
next nya kehapus ato gimana

Andi Kandini said...

ini mba listing simpan aku:

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.

rani irsan said...

debug object variable or with block variable not set nya mengarah kemana?
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.

Andi Kandini said...

kalau Koneksi Visual Basic 6 (VB6) MySQL itu ko aku referencenya gmn mba?
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?

rani irsan said...

silahkan baca lagi
http://rani-irsan.blogspot.com/2011/04/koneksi-visual-basic-6-vb6-mysql.html
dan ikuti langkah nya dari awal artikel

Andi Kandini said...

mba rani aku sudah ketemu listing simpannya kaya gini mba..

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..

fery mantemen said...

mba ko masih error on open_excel 424 object required
mohon pencerahannya

rani irsan said...

kayak nya ada object yang belum ditambahkan, coba di cek lagi dan ikuti tahapan artikel nya dari awal :)

Ritonga Hamdan said...

mbak rani, ini aku udah bisa browse .csv cuma pas load gagal mbak. gimana ya solusinya, karna excel yang saya buka bukan .xls tapi .csv mbak. mohon bantuannya

rani irsan said...

@Ritongga Hamdan:
http://rani-irsan.blogspot.com/2015/06/vb6-ms-access-import-dari-csv-file-part.html

Ritonga Hamdan said...

masih error mbak di fnum nya. saya ingin menampilkan csvnya saja

rani irsan said...

oh gitu.... ^_^

Ritonga Hamdan said...

mohon bantuannya mbak hehe :)

rani irsan said...

error nya gimana yah? soal nya rani ga bisa reproduce error nya.
dan code nya jalan baik2 aja

Ritonga Hamdan said...

setelah saya browse file excel (.csv) nya itu gak mau kebuka di datagrid1 mbak.

rani irsan said...

maaf penjelasan nya blom bisa buat nge-trace error nya dimana...

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

Ritonga Hamdan said...

sudah bisa ketampil mbak, sekarang yang gak bisa di bagian INSERT INTO nya .

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

rani irsan said...

oh kirain teh cuman pengen nampilin csv nya ajah heuheu...

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

Ritonga Hamdan said...

sudah dalam satu folder mbak, saya juga menamakan databasenya sama latihan.mdb.

Ritonga Hamdan said...

sudah bisa mbak, terima kasih banyak hehe

Unknown said...

mbak ada bisa kasih tutorial menampilkan data excel ke textbox VB 6 ga?

Arif Husein said...

file extensi nya erro

Arif Husein said...

mbak itu hanya bisa buat format .xls yaa?? saya pake .xlsx ko ga bisa siih mbak, format di scriptnya juga sudah saya ganti jadi :

Private Sub cmdBrowse_Click()
dlgOpen.Filter = "Excel Files (*.xlsx)|*.xlsx" <========
dlgOpen.ShowOpen
Me.txtfile.Text = dlgOpen.FileName
End Sub

Innarotun Naja said...

Mba koh error disini
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,,:)

rani irsan said...

@Arif Husein: VB6 nya belom support *.xlsx

rani irsan said...

@Innarotun Naja: pesan error nya kayak gimana?

Innarotun Naja said...

Error on open_excel:-2147467259could not find installable ISAM
Error disini knapa ya mba?

rani irsan said...

@Innarotun Naja: kemungkinan ada komponen yang diperlukan belum diinstall, apa di PC nya ada excel?

Erick xtrada said...
This comment has been removed by the author.
Erick xtrada said...

Mbak mau tanya..kalau kita mau buat databasenya Vb nya langsung masuk ke excel gt gmna ya mbak?jadi misalkan kita sudah membuat table di excel..lalu di Vb nya kita tekan save..secara otomatis akan masuk ketable yang ada di excel dan otomatis mengikuti penyimpanan table nya menurut urutan table excel nya..bisa ga seperti itu mbak? tolong solusi mbak..terimakasih..

I my me mine said...

mba rani ini aku mau tanya kalo data yang ada di form 1 itu mau kita filter gimana caranya, saya bisa filternya kalo data masternya format database kalo format excel saya kesulitan, tolong bantuannya mba

rani irsan said...

itu kan data nya masuk ke recordset, filter aja pake recordset nya

Unknown said...

mau tanya, kalo saya punya matrik (4,4) kemudian mau saya masukkan ke datagrid di vb6 bagaimana ya?
masih baru belajar
terima kasih

Unknown said...

semisal matriknya (3,3)

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?

rani irsan said...

Coba pake temporary recordset, aku blom punya sih contoh spesifik nya di blog ini.
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

sugi herwanto said...

Mbak punya saya sudah nampil sperti di contoh. Trz kalau mau nambah langsng simpan ke dalam database gimana ya kodingnya

rani irsan said...

looping aja data nya dari rsExcel terus masukin code untuk simpan di database, database nya apa?

koin said...

Mbak kalau mencari data duplikat dengan kriteria lebih dari kodingnya gimana ya?

rani irsan said...

data duplikat di mana nya maksud nya? excel/database?

koin said...
This comment has been removed by the author.
koin said...

Datanya dari excel....

rani irsan said...

coba diperjelas alur proses nya gimana? supaya masuk ke grid ga duplikat?

koin said...

Alurnya begini Mbak, saya ambil data dari excel kemudian ditampilkan di datagrid. Data yang ditampilkan oleh datagrid ini ada yang ganda. Caranya untuk mencari semua data ganda yang ada di dalam datagrid dan bisa ditampilkan ke datagrid yang lain rumusnya gimana ya Mbak. Terus data ganda itu bisa disimpan dalam format excel.

sindhu said...

Kalau pas file excelnya terbuka dan otomatis update bisa nggak di load dan dibaca dari vb nya?

rani irsan said...

@koin:
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

rani irsan said...

@shindu: karena saat ditarik dari excel dimasukan dulu ke dalam recordset rsExcel maka bisa digunakan ulang untuk diotak atik dengan code VB nya

koin said...

Ok Mbak Rani, terima kasih

koin said...
This comment has been removed by the author.
sancorp AP said...

Nice mbak, tp kalo buka .xlsx + .xls gmn yak?? Udh ane coba rubah2...

sancorp AP said...
This comment has been removed by the author.
sancorp AP said...

Kok lstTable.AddItem ane error ya mbak, pesannya argument not optional

rani irsan said...

@sancorp AP : karena ini masih VB6 jadi belum support .xlsx tampaknya

sancorp AP said...

Trus kalo mo search data dari datagrid ini d form lain gmn ya mbak??

sancorp AP said...

Ada kontak yg bisa d hubungin gk mbak, soalnya masih mo tanya2 lebih lanjut ini.. hehehe