Export ke tipe file .csv (comma delimited) sebenernya ga usah terlalu pusing, karena modal nya adalah pengetahuan mengelola Text File.
Namanya comma delimited berarti dibatasi oleh koma hehe...
Cuman yang perlu diperhatikan adalah regional setting yang ada pada PC yang digunakan. Karena Ms. Excel membaca pembatas dengan koma (,) atau titik koma (;) bergantung pada regional setting.
Sebagai contoh pada gambar di bawah ini, untuk setting regional English (United States) dan Indonesian (Indonesia)
Karena Rani menggunakan setting English (United States), saat membuka file di excel dengan delimiter koma (,) bentuknya sebagai berikut:
Sementara jika membuka file di excel dengan delimiter titik koma (;), tidak otomatis terpisah menjadi kolom.
Disesuaikan sama kebutuhan aja sih sebenernya, klo kita cuma pakai untuk import dan export dengan metoda yang kita buat sendiri koma atau titik koma ga begitu masalah. Dengan asumsi ga perlu buka pake excel. Bahkan kita bisa tentukan karakter delimiter sendiri misal nya tab (vbTab), bintang (*), atau garis vertikal ( | ) buat jaga2 klo nilai data kita mengandung karakter koma.
Lebih jelas nya kita lihat ke contoh yang akan kita buat, tapi sebelumnya perlu dipahami dulu bagaimana menampilkan list table yang ada pada database access. Dan sample ini juga Rani buat berkelanjutan, so baca dulu artikel ini yap!
Kemudian tambahkan UI sebagai berikut:
Pertama kita atur tampilan untuk command button, label dan combobox yang baru kita tambahkan:
(perubahan dengan highlight pink)
Private Sub Form_Load()
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\latihan.mdb;" & _
"Persist Security Info=False"
ListTables
Command1.Caption = "Export CSV"
Label1.Caption = "Delimiter"
With Combo1
.AddItem ","
.AddItem ";"
.ListIndex = 0
End With
End Sub
Sub untuk menyimpan file .csv
Sub SaveToFile(FileName As String)
Dim str As String
Dim i As Integer
Dim r As Integer
Open FileName For Output As #1
'tulis header dulu
'skip bagian ini klo ga pengen header
str = ""
For i = 0 To rsData.Fields.Count - 1
str = str & rsData.Fields(i).Name
If i < rsData.Fields.Count - 1 Then
str = str & Combo1.Text
End If
Next
Print #1, str
'tulis isi data
rsData.MoveFirst
For r = 0 To rsData.RecordCount - 1
str = ""
For i = 0 To rsData.Fields.Count - 1
str = str & rsData.Fields(i).Value
If i < rsData.Fields.Count - 1 Then
str = str & Combo1.Text
End If
Next
Print #1, str
rsData.MoveNext
Next
Close #1
End Sub
Dan proses export dilakukan di event Command1 Click. Oiya khusus di event ini rani tambahin error handling karena emang riskan error, klo procedure laen mo ditambahin error handling juga bisa koq.
Private Sub Command1_Click()
On Error GoTo errHandler
Dim strFileName As String
'cek dulu apakah data kosong
If rsData.RecordCount = 0 Then
MsgBox "Data Kosong": Exit Sub
End If
CommonDialog1.FileName = "Export.csv"
CommonDialog1.DefaultExt = "csv"
CommonDialog1.Filter = "Comma delimited (*.csv)"
CommonDialog1.ShowSave
If CommonDialog1.FileTitle = "" Then Exit Sub
strFileName = CommonDialog1.FileName
If Dir(strFileName) <> "" Then
If MsgBox("File exists, Overwrite?", vbYesNo, _
"Confirmation") = vbNo Then Exit Sub
End If
SaveToFile strFileName
Exit Sub
errHandler:
MsgBox "Error: " & Err.Description
End Sub
Bagaimana program berjalan dan kode selengkapnya ada di Part 2 yah...
Click here if you like this article.
4 Comments
Dim str As StringDim i As IntegerDim r As Integer
COBAH UBAH KE
Dim str As String
Dim i As Integer
Dim r As Integer
'------------------
UNTUK ERORR DI Syntax INI
rsData.MoveFirstFor r = 0 To rsData.RecordCount - 1
UBAH KE:
rsData.MoveFirst
For r = 0 To rsData.RecordCount - 1