Visual Basic - Menulis data ke Fixed Width Text File

Monday, February 18, 2008

scroll to Indonesian Version


Fixed-Width text file sometimes we needed as temporary media for transfering data from one database type to another. For example you wish to transfer data from MySQL database at your office computer to your Microsoft Access database at your home PC for back up or certain purpose. before you tranfering the data to microsoft access database, first you need to export it to text file format with Fixed-Width type and then import it from your microsoft access database.



the reason why i choose this type of text file is because it is not only more simple, but Fixed-Width text file are will be more easy if we will export it to other file format for example to microsoft excel file format.



the following is a short tutorial about how to writing data to fixed-width text file in visual basic 6 :




  • Create a database in Microsoft access named sales.mdb and create a table inside em named tbarang and fill the table with data like in my Belajar syntax dasar statement sql article.

  • Step into Visual Basic, create a new project with Standard EXE type.

  • Add a CommandButton, and a Label component.

  • Change Caption property of Command1 component (CommandButton component) to "Export to Fixed Width text File", and AutoSize propery of label1 component to True.

  • Step into Code Editor by clicking View and then select Code menu. empty the text in the Code Editor if any, then add the following line of code :





Dim koneksi As New ADODB.Connection

Dim rsteks As New ADODB.Recordset



Private Sub Form_Load()

Set koneksi = New ADODB.Connection

koneksi.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Password=; & _
Persist Security Info=True;User ID=Admin;Data Source=" & app.path & "\sales.mdb"

koneksi.Open

End Sub



Private Sub Command1_Click()

Dim strsql As String

Dim i As Integer



Set rsteks = New ADODB.Recordset


strsql = "select * from tbarang"


rsteks.Open strsql, koneksi, adOpenDynamic, adLockOptimistic



i = 0

Label1.Caption = CStr(rsteks.RecordCount)

Label1.Refresh


Open App.Path & "\tes.txt" For Output As #1



If Not rsteks.BOF Then

rsteks.MoveFirst

While Not rsteks.EOF

i = i + 1

Label1.Caption = "Writing data no " & CStr(i)

Label1.Refresh


Print #1,rsteks!kodeitem;

Tab(11); rsteks!deskripsi;

'if the field data type is number

'then the values must be converted to string type using cstr() function

Tab(61); CStr(rsteks!harga);

Tab(71); rsteks!kategori;

Tab(77); CStr(rsteks!diskon);

Tab(79); rsteks!statusjual

rsteks.MoveNext

Wend

End If


Close #1



Exit Sub

End Sub










scroll to English Version

Fixed-Width text file atau file teks yang mempunyai ukuran kolom/field yang tetap, terkadang dibutuhkan sebagai media sementara jika kita akan melakukan transfer data dari satu jenis database ke jenis database yang lain. Misalnya anda ingin mentransfer data dari database MySQL di kantor anda ke database Microsoft Access di komputer di rumah anda untuk keperluan tertentu atau untuk keperluan backup data. Sebelum anda mentransfernya ke microsoft access anda terlebih dahulu mengeksportnya ke format file teks dengan tipe Fixed-Width kemudian baru mentransfernya ke microsoft access.



Saya memilih tipe file teks jenis ini karena selain lebih simpel, fixed-width text file ini akan lebih mudah jika kita akan mengekspornya ke format file yang lain misalnya ke format file microsoft excel.



berikut ini adalah tutorial singkat tentang cara menulis data ke file teks fixed-width di visual basic 6 :




  • Buat sebuah database di microsoft access dengan nama penjualan.mdb dan sebuah tabel didalamnya dengan nama tbarang dan isi datanya seperti pada artikel Belajar syntax dasar statement sql.

  • Masuk ke Visual Basic, buat project baru dengan tipe Standard EXE.

  • Tambahkan sebuah komponen CommandButton, dan sebuah label.

  • Set property Caption dari komponen Command1 (komponen CommandButton) menjadi "Export Ke Fixed Width text File", dan propery AutoSize dari komponen label1 menjadi True.

  • Masuk ke Code Editor dengan cara klik menu View kemudian pilih Code kosongkan teks dalam Code Editor, kemudian tambahkan baris perintah berikut ini :





Dim koneksi As New ADODB.Connection

Dim rsteks As New ADODB.Recordset



Private Sub Form_Load()

Set koneksi = New ADODB.Connection

koneksi.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Password=; & _
Persist Security Info=True;User ID=Admin;Data Source=" & app.path & "\penjualan.mdb"

koneksi.Open

End Sub



Private Sub Command1_Click()

Dim strsql As String

Dim i As Integer



Set rsteks = New ADODB.Recordset


strsql = "select * from tbarang"


rsteks.Open strsql, koneksi, adOpenDynamic, adLockOptimistic



i = 0

Label1.Caption = CStr(rsteks.RecordCount)

Label1.Refresh


Open App.Path & "\tes.txt" For Output As #1



If Not rsteks.BOF Then

rsteks.MoveFirst

While Not rsteks.EOF

i = i + 1

Label1.Caption = "Menulis data ke " & CStr(i)

Label1.Refresh


Print #1,rsteks!kodeitem;

Tab(11); rsteks!deskripsi;

'jika tipe data fieldnya adalah number

'maka nilai harus dikonversi dahulu ke string dengan fungsi cstr()

Tab(61); CStr(rsteks!harga);

Tab(71); rsteks!kategori;

Tab(77); CStr(rsteks!diskon);

Tab(79); rsteks!statusjual

rsteks.MoveNext

Wend

End If


Close #1



Exit Sub

End Sub


0 comments:

Recent Comments

Tags Cloud

Blogumulus by Roy Tanck and Amanda Fazani