Bagi anda para software developer baik itu yang menggunakan database seperti MS Access ataupun database RDBMS seperti MS SQL Server, Oracle, MySQL dll, tentu anda pernah menginginkan agar data anda bisa dieksport ke format MS Excell untuk tujuan lainnya seperti ingin mempercantik format tampilan, sebagai bahan pembuatan laporan dan lain sebagainya. Walaupun ada banyak tool yang tersedia di internet untuk melakukan hal ini, tetapi mungkin saja anda ingin mengintegrasikan kemampuan ini dalam aplikasi yang anda buat. Adapun versi Visual Basic yang saya gunakan adalah Visual Basic versi 6.0 dan microsoft office yang saya gunakan adalah Microsoft Office 2003 (MS Office 11).
Persiapan
Aplikasi ini akan kita gunakan untuk mengeksport data dari database Microsoft Access. Buat sebuah folder baru di drive C dan beri nama "ToExcel". Kemudian kita akan membuat sebuah database Microsoft Access langkahnya sebagai berikut : Klik Start Menu | Program | Microsoft Office Access 2003. Setelah masuk ke IDE microsoft access, klik menu File | New. Di menubar sebelah kanan pilih "Blank Database". Kemudian sebuah kotak dialog "File New Database" akan muncul. Simpan file tersebut di folder "ToExcel" yang telah kita buat tadi dan beri nama sample.mdb.
Buat sebuah tabel dengan struktur data seperti dibawah ini :
NIK text(10),Nama text(50),Jabatan text(30). Simpan tabel tersebut dan beri nama Karyawan. Kemudian isi beberapa data kedalam table tersebut.
Pembuatan Aplikasi
Jalankan MS Visual Basic : klik Start Menu | Program | Microsoft Visual Basic 6.0 | Microsoft Visual Basic 6.0. Setelah masuk ke Visual Basic IDE, kita akan melihat window yang mempunyai tiga tab dengan title "New Project".
Agar visual basic dapat menggunakan library untuk microsoft excel, maka kita harus mengaktifkan Library microsoft excel ini dengan cara : klik menu Project | References. Ini akan memunculkan window "References – Project1". Di dalam window ini terdapat banyak object library yang bisa digunakan untuk visual basic IDE. Kemudian centang object library yang berlabel "Microsoft Excel 11.0 Object Library" atau library "Microsoft Excel 10.0 Object Library" untuk pengguna Microsoft Office 2000 dan "Microsoft Excel 12.0 Object Library" untuk pengguna Microsoft Office 2007.
Ini akan memberitahukan kepada visual basic bahwa kita akan menggunakan object library dari Microsoft Office Excel 11.0 atau versi microsoft office excel yang anda gunakan.
Interface Aplikasi
Sekarang kita mulai dengan interface. Tambahkan sebuah CommandButton, DataGrid, Adodc dan sebuah label. Set nilai property masing-masing komponen sesuai dengan gambar dibawah ini :
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=sample.mdb;Persist Security Info=False" . tidak menggunakan path absolute sebagai berikut :
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\ToExcel\sample.mdb;Persist Security Info=False".
Cara pertama (dengan path relative) akan membuat aplikasi lebih fleksibel. Maksudnya, meskipun aplikasi ini dipindahkan ke folder lain asalkan databasenya (.mdb) juga ditempatkan di folder yang sama dengan aplikasi (.exe) tersebut, aplikasi ini tidak akan mengalami error dan tidak perlu merubah source code dari aplikasi tersebut.
field-field dari tabel karyawan ke komponen DataGrid1 secara otomatis.
Sehingga tampilannya akan seperti gambar dibawah ini :
ini akan memunculkan "Code Window".
Isikan beberapa baris kode program berikut pada bagian paling atas sebelum kode Private Sub Form_Load().
Dim rskaryawan As ADODB.Recordset
Set rskaryawan = New ADODB.Recordset
koneksi_ado.ConnectionString= & _
"Provider=Microsoft.Jet.OLEDB.4.0; & _
Password=;Data Source=" & App.Path & "\sample.mdb" & _
";Persist Security Info=True"
koneksi_ado.Open
Adodc1.Enabled = True
SQLStr = "select * from karyawan order by nama"
rskaryawan.Open SQLStr, koneksi_ado, adOpenDynamic, adLockOptimistic
DataGrid1.Refresh
Label1.Caption = "Status :"
Dim excelsheetku As Excel.Worksheet
Dim baris, datake As Integer
Label1.Caption = "Status : Prosesing Data...."
Set EXCELAPPKU = New Excel.Application
Set excelbookku = EXCELAPPKU.Workbooks.Add
With EXCELAPPKU
.StandardFontSize = "10"
End With
EXCELAPPKU.Visible = True
Set excelsheetku = excelbookku.Worksheets(1)
excelsheetku.Select
Range("A1:C1").Select
Selection.MergeCells = True
Selection.HorizontalAlignment = xlCenter
ActiveCell.FormulaR1C1 = UCase("Data Karyawan")
Selection.Font.Bold = True
Selection.Font.Name = "Verdana"
With excelsheetku
.Cells(2, 1).Value = "NIK"
.Cells(2, 2).Value = "Nama"
.Cells(2, 3).Value = "Jabatan"
Label1.Caption = "Status : Prosesing Data..."
baris = 3
datake = 0
If Not rskaryawan.BOF Then
rskaryawan.MoveFirst
While Not rskaryawan.EOF
Label1.Caption = "Status : Exporting Data ke " & datake
Label1.Refresh
datake = datake + 1
.Cells(1, 5).Value = "Fetching data ke " & datake
.Cells(baris, 1) = rskaryawan![NIK]
.Cells(baris, 2) = rskaryawan![nama]
.Cells(baris, 3) = rskaryawan![jabatan]
baris = baris + 1
rskaryawan.MoveNext
Wend
End If
.Cells(1, 5).ClearContents
.Columns("A:A").EntireColumn.AutoFit
.Columns("B:B").EntireColumn.AutoFit
.Columns("C:C").EntireColumn.AutoFit
End With
rskaryawan.Close
Label1.Caption = "Status : Selesai."
On Error GoTo 0
Set excelsheetku = Nothing
Set excelbookku = Nothing
EXCELAPPKU.Quit
MsgBox "Export data selesai", vbInformation, "Informasi"
kalo misalanya data dari vb disimpan ke excel gmn om, jd data yg di imput di vb tuh langsung masuk ke excel tampa perlu di simpan,,,, jdi semacam otomatis gitu om,,,,? bisa ngga?
ReplyDelete.Cells(baris, 1) = rskaryawan![NIK] diganti dengan Text1.Txt
ReplyDelete.Cells(baris, 2) = rskaryawan![nama] diganti dengan Text2.Txt
.Cells(baris, 3) = rskaryawan![jabatan] diganti dengan Text2.Txt
kalo data pada datadrig di filter berdasarkan jabatan pencatat meter.
ReplyDeletecara agar export ke excel hanya menampilkan data yang telah di filter berdasarkan jabatan pencatat meter tersebut saja bagaimana ya ?
karna saya sudah coba tetapi tetap yang ter export semua data, sedangkan datagrid sudah saya filter.
Makasih banyak gan, sangat membantu
ReplyDelete100% works
Kalo membuat tombol printnya gmn mas? kan program nggak lengkap tanpa dicetak
ReplyDeleteom bagi file nya dongg, gagal mulu nih
ReplyDeletekoneksi_ado.ConnectionString= & _
ReplyDelete"Provider=Microsoft.Jet.OLEDB.4.0; & _
Password=;Data Source=" & App.Path & "\Pengujian.mdb" & _
";Persist Security Info=True"
error code nech
Koneksi_ado
DeleteProvider.y udah sm blum gan dg yg sgsn pkai
This comment has been removed by the author.
ReplyDeletekalau dari data textboxt.text masuk ke excel terus menampilkan gambar bagaimana?
ReplyDeleteHasil export (.xls) urutannya jadi berantakan.. gimana nih...
ReplyDeleteGan gimana cara menampilkan semua data di adodc gan
ReplyDelete